diff options
Diffstat (limited to 'lib/gitlab/background_migration/add_primary_email_to_emails_if_user_confirmed.rb')
-rw-r--r-- | lib/gitlab/background_migration/add_primary_email_to_emails_if_user_confirmed.rb | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/lib/gitlab/background_migration/add_primary_email_to_emails_if_user_confirmed.rb b/lib/gitlab/background_migration/add_primary_email_to_emails_if_user_confirmed.rb deleted file mode 100644 index b39c0953fb1..00000000000 --- a/lib/gitlab/background_migration/add_primary_email_to_emails_if_user_confirmed.rb +++ /dev/null @@ -1,58 +0,0 @@ -# frozen_string_literal: true - -module Gitlab - module BackgroundMigration - # Add user primary email to emails table if confirmed - class AddPrimaryEmailToEmailsIfUserConfirmed - INNER_BATCH_SIZE = 1_000 - - # Stubbed class to access the User table - class User < ActiveRecord::Base - include ::EachBatch - - self.table_name = 'users' - self.inheritance_column = :_type_disabled - - scope :confirmed, -> { where.not(confirmed_at: nil) } - - has_many :emails - end - - # Stubbed class to access the Emails table - class Email < ActiveRecord::Base - self.table_name = 'emails' - self.inheritance_column = :_type_disabled - - belongs_to :user - end - - def perform(start_id, end_id) - User.confirmed.where(id: start_id..end_id).select(:id, :email, :confirmed_at).each_batch(of: INNER_BATCH_SIZE) do |users| - current_time = Time.now.utc - - attributes = users.map do |user| - { - user_id: user.id, - email: user.email, - confirmed_at: user.confirmed_at, - created_at: current_time, - updated_at: current_time - } - end - - Email.insert_all(attributes) - end - mark_job_as_succeeded(start_id, end_id) - end - - private - - def mark_job_as_succeeded(*arguments) - Gitlab::Database::BackgroundMigrationJob.mark_all_as_succeeded( - 'AddPrimaryEmailToEmailsIfUserConfirmed', - arguments - ) - end - end - end -end |