28 lines
665 B
Ruby
28 lines
665 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
class BackfillTotalTupleCountForBatchedMigrations < ActiveRecord::Migration[6.0]
|
||
|
DOWNTIME = false
|
||
|
|
||
|
def up
|
||
|
return unless should_run?
|
||
|
|
||
|
Gitlab::Database::BackgroundMigration::BatchedMigration.all.each do |migration|
|
||
|
total_tuple_count = Gitlab::Database::PgClass.for_table(migration.table_name)&.cardinality_estimate
|
||
|
|
||
|
migration.update(total_tuple_count: total_tuple_count)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def down
|
||
|
return unless should_run?
|
||
|
|
||
|
Gitlab::Database::BackgroundMigration::BatchedMigration.update_all(total_tuple_count: nil)
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def should_run?
|
||
|
Gitlab.dev_or_test_env? || Gitlab.com?
|
||
|
end
|
||
|
end
|