summaryrefslogtreecommitdiff
path: root/db
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2018-05-07 14:38:11 +0200
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2018-05-07 14:38:11 +0200
commitcffb3e6805ae8b2b3ee909c7561953b1d99bc1ea (patch)
tree46284242dd5384dc064873fb2f8bd15905e297f7 /db
parent965d0394d371f427ad0423bda2a6dc8867b31563 (diff)
downloadgitlab-ce-cffb3e6805ae8b2b3ee909c7561953b1d99bc1ea.tar.gz
Cleanup pipeline build stage background migration
Diffstat (limited to 'db')
-rw-r--r--db/migrate/20180420010616_cleanup_build_stage_migration.rb28
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