Skip to content

Backfill existing user_details fields from users table

Brian Austin requested to merge (removed):206913-user-details-backfill into master

What does this MR do and why?

Adds a migration to backfill

  • linkedin
  • twitter
  • skype
  • website_url
  • location
  • organization

from users to user_details. This will take care of any users who have not updated this information since !95107 (merged) and is a follow-up to that MR. See !93298 (comment 1044564813) for notes about the order of operations here.

db:migrate output

main: == 20221018232820 AddTempIndexForUserDetailsFields: migrating =================
main: -- transaction_open?()
main:    -> 0.0000s
main: -- index_exists?(:users, :id, {:name=>"tmp_idx_where_user_details_fields_filled", :where=>"(COALESCE(linkedin, '') IS DISTINCT FROM '')\nOR (COALESCE(twitter, '') IS DISTINCT FROM '')\nOR (COALESCE(skype, '') IS DISTINCT FROM '')\nOR (COALESCE(website_url, '') IS DISTINCT FROM '')\nOR (COALESCE(location, '') IS DISTINCT FROM '')\nOR (COALESCE(organization, '') IS DISTINCT FROM '')\n", :algorithm=>:concurrently})
main:    -> 0.0204s
main: -- execute("SET statement_timeout TO 0")
main:    -> 0.0004s
main: -- add_index(:users, :id, {:name=>"tmp_idx_where_user_details_fields_filled", :where=>"(COALESCE(linkedin, '') IS DISTINCT FROM '')\nOR (COALESCE(twitter, '') IS DISTINCT FROM '')\nOR (COALESCE(skype, '') IS DISTINCT FROM '')\nOR (COALESCE(website_url, '') IS DISTINCT FROM '')\nOR (COALESCE(location, '') IS DISTINCT FROM '')\nOR (COALESCE(organization, '') IS DISTINCT FROM '')\n", :algorithm=>:concurrently})
main:    -> 0.0066s
main: -- execute("RESET statement_timeout")
main:    -> 0.0004s
main: == 20221018232820 AddTempIndexForUserDetailsFields: migrated (0.0354s) ========

main: == 20221019002459 QueueBackfillUserDetailsFields: migrating ===================
main: == 20221019002459 QueueBackfillUserDetailsFields: migrated (0.0455s) ==========

db:rollback output

main: == 20221019002459 QueueBackfillUserDetailsFields: reverting ===================
main: == 20221019002459 QueueBackfillUserDetailsFields: reverted (0.0319s) ==========

main: == 20221018232820 AddTempIndexForUserDetailsFields: reverting =================
main: -- transaction_open?()
main:    -> 0.0000s
main: -- indexes(:users)
main:    -> 0.0292s
main: -- execute("SET statement_timeout TO 0")
main:    -> 0.0005s
main: -- remove_index(:users, {:algorithm=>:concurrently, :name=>"tmp_idx_where_user_details_fields_filled"})
main:    -> 0.0023s
main: -- execute("RESET statement_timeout")
main:    -> 0.0005s
main: == 20221018232820 AddTempIndexForUserDetailsFields: reverted (0.0423s) ========

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Related to #206913 (closed)

Edited by Brian Austin

Merge request reports