diff options
Diffstat (limited to 'db/post_migrate/20200204113223_schedule_recalculate_project_authorizations.rb')
-rw-r--r-- | db/post_migrate/20200204113223_schedule_recalculate_project_authorizations.rb | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/db/post_migrate/20200204113223_schedule_recalculate_project_authorizations.rb b/db/post_migrate/20200204113223_schedule_recalculate_project_authorizations.rb deleted file mode 100644 index 83b58300115..00000000000 --- a/db/post_migrate/20200204113223_schedule_recalculate_project_authorizations.rb +++ /dev/null @@ -1,43 +0,0 @@ -# frozen_string_literal: true - -class ScheduleRecalculateProjectAuthorizations < ActiveRecord::Migration[5.1] - include Gitlab::Database::MigrationHelpers - - DOWNTIME = false - - MIGRATION = 'RecalculateProjectAuthorizations' - BATCH_SIZE = 2_500 - DELAY_INTERVAL = 2.minutes.to_i - - disable_ddl_transaction! - - class Namespace < ActiveRecord::Base - include ::EachBatch - - self.table_name = 'namespaces' - end - - class ProjectAuthorization < ActiveRecord::Base - include ::EachBatch - - self.table_name = 'project_authorizations' - end - - def up - say "Scheduling #{MIGRATION} jobs" - - max_group_id = Namespace.where(type: 'Group').maximum(:id) - project_authorizations = ProjectAuthorization.where('project_id <= ?', max_group_id) - .select(:user_id) - .distinct - - project_authorizations.each_batch(of: BATCH_SIZE, column: :user_id) do |authorizations, index| - delay = index * DELAY_INTERVAL - user_ids = authorizations.map(&:user_id) - BackgroundMigrationWorker.perform_in(delay, MIGRATION, [user_ids]) - end - end - - def down - end -end |