Download avatars from URL in SSO record and create missing user profiles

This commit is contained in:
Gerhard Schlager 2021-11-16 17:22:33 +01:00
parent d836638758
commit 9e93f089c1

View File

@ -11,6 +11,7 @@ task "import:ensure_consistency" => :environment do
insert_topic_views
insert_user_actions
insert_user_options
insert_user_profiles
insert_user_stats
insert_user_visits
insert_draft_sequences
@ -187,6 +188,17 @@ def insert_user_options
SQL
end
def insert_user_profiles
log "Inserting user stats..."
DB.exec <<-SQL
INSERT INTO user_profiles (user_id)
SELECT id
FROM users
ON CONFLICT DO NOTHING
SQL
end
def insert_user_stats
log "Inserting user stats..."
@ -520,3 +532,27 @@ task "import:update_first_post_created_at" => :environment do
log "Done"
end
desc "Update avatars from external_avatar_url in SSO records"
task "import:update_avatars_from_sso" => :environment do
log "Updating avatars from SSO records"
sql = <<~SQL
SELECT user_id, external_avatar_url
FROM single_sign_on_records s
WHERE NOT EXISTS (
SELECT 1
FROM user_avatars a
WHERE a.user_id = s.user_id
)
SQL
DB.query_each(sql) do |row|
Jobs.enqueue(
:download_avatar_from_url,
url: row.external_avatar_url,
user_id: row.user_id,
override_gravatar: true
)
end
end