summaryrefslogtreecommitdiff
path: root/db/post_migrate
diff options
context:
space:
mode:
authorKamil Trzciński <ayufan@ayufan.eu>2018-11-06 12:36:13 +0000
committerKamil Trzciński <ayufan@ayufan.eu>2018-11-06 12:36:13 +0000
commit1cf4aa023978cfb28e73058e66e7d16d864e6f5a (patch)
tree3b5ace6679df995a262956e6fe038bfaeca86e02 /db/post_migrate
parent4ff91723fcdb53f7eb1dddcc22c8b40472326010 (diff)
parentb4ae55f4aadc6e9dc1d275f15e81f807b22d307b (diff)
downloadgitlab-ce-1cf4aa023978cfb28e73058e66e7d16d864e6f5a.tar.gz
Merge branch 'stateful_deployments' into 'master'
Change life cycle of `deployments` records in order to make it a stateful object See merge request gitlab-org/gitlab-ce!22380
Diffstat (limited to 'db/post_migrate')
-rw-r--r--db/post_migrate/20181030135124_fill_empty_finished_at_in_deployments.rb27
1 files changed, 27 insertions, 0 deletions
diff --git a/db/post_migrate/20181030135124_fill_empty_finished_at_in_deployments.rb b/db/post_migrate/20181030135124_fill_empty_finished_at_in_deployments.rb
new file mode 100644
index 00000000000..32b271c472a
--- /dev/null
+++ b/db/post_migrate/20181030135124_fill_empty_finished_at_in_deployments.rb
@@ -0,0 +1,27 @@
+# frozen_string_literal: true
+
+class FillEmptyFinishedAtInDeployments < ActiveRecord::Migration
+ include Gitlab::Database::MigrationHelpers
+
+ DOWNTIME = false
+ DEPLOYMENT_STATUS_SUCCESS = 2 # Equivalent to Deployment.statuses[:success]
+
+ class Deployments < ActiveRecord::Base
+ self.table_name = 'deployments'
+
+ include EachBatch
+ end
+
+ def up
+ FillEmptyFinishedAtInDeployments::Deployments
+ .where('finished_at IS NULL')
+ .where('status = ?', DEPLOYMENT_STATUS_SUCCESS)
+ .each_batch(of: 10_000) do |relation|
+ relation.update_all('finished_at=created_at')
+ end
+ end
+
+ def down
+ # no-op
+ end
+end