diff options
author | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2018-05-07 14:38:11 +0200 |
---|---|---|
committer | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2018-05-07 14:38:11 +0200 |
commit | cffb3e6805ae8b2b3ee909c7561953b1d99bc1ea (patch) | |
tree | 46284242dd5384dc064873fb2f8bd15905e297f7 /db | |
parent | 965d0394d371f427ad0423bda2a6dc8867b31563 (diff) | |
download | gitlab-ce-cffb3e6805ae8b2b3ee909c7561953b1d99bc1ea.tar.gz |
Cleanup pipeline build stage background migration
Diffstat (limited to 'db')
-rw-r--r-- | db/migrate/20180420010616_cleanup_build_stage_migration.rb | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/db/migrate/20180420010616_cleanup_build_stage_migration.rb b/db/migrate/20180420010616_cleanup_build_stage_migration.rb new file mode 100644 index 00000000000..0342695ec3d --- /dev/null +++ b/db/migrate/20180420010616_cleanup_build_stage_migration.rb @@ -0,0 +1,28 @@ +class CleanupBuildStageMigration < ActiveRecord::Migration + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + class Build < ActiveRecord::Base + include EachBatch + + self.table_name = 'ci_builds' + self.inheritance_column = :_type_disabled + end + + def up + Gitlab::BackgroundMigration.steal('MigrateBuildStage') + + Build.where('stage_id IS NULL').each_batch(of: 50) do |batch| + range = batch.pluck('MIN(id)', 'MAX(id)').first + + Gitlab::BackgroundMigration::MigrateBuildStage.new.perform(*range) + end + end + + def down + # noop + end +end |