Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYorick Peterse <yorickpeterse@gmail.com>2017-11-02 19:58:26 +0300
committerYorick Peterse <yorickpeterse@gmail.com>2017-11-02 19:58:26 +0300
commit52115b905a72030afd536922389ed42991aec4cb (patch)
tree83984696918b5e38b19c485018704e72fe6a651e /db/post_migrate
parent64c9d7805d80537600251d5f6e1b5a32d4b6d1c0 (diff)
parent4768a1e26f70263be24ac681042507fe01218b9b (diff)
Merge branch '37631-add-a-merge_request_diff_id-column-to-merge_requests' into 'master'
Resolve "Add a `merge_request_diff_id` column to `merge_requests`" See merge request gitlab-org/gitlab-ce!15035
Diffstat (limited to 'db/post_migrate')
-rw-r--r--db/post_migrate/20171026082505_populate_merge_requests_latest_merge_request_diff_id.rb27
1 files changed, 27 insertions, 0 deletions
diff --git a/db/post_migrate/20171026082505_populate_merge_requests_latest_merge_request_diff_id.rb b/db/post_migrate/20171026082505_populate_merge_requests_latest_merge_request_diff_id.rb
new file mode 100644
index 00000000000..a7ebbbf34c0
--- /dev/null
+++ b/db/post_migrate/20171026082505_populate_merge_requests_latest_merge_request_diff_id.rb
@@ -0,0 +1,27 @@
+class PopulateMergeRequestsLatestMergeRequestDiffId < ActiveRecord::Migration
+ include Gitlab::Database::MigrationHelpers
+
+ DOWNTIME = false
+ BATCH_SIZE = 1_000
+
+ class MergeRequest < ActiveRecord::Base
+ self.table_name = 'merge_requests'
+
+ include ::EachBatch
+ end
+
+ disable_ddl_transaction!
+
+ def up
+ update = '
+ latest_merge_request_diff_id = (
+ SELECT MAX(id)
+ FROM merge_request_diffs
+ WHERE merge_requests.id = merge_request_diffs.merge_request_id
+ )'.squish
+
+ MergeRequest.where(latest_merge_request_diff_id: nil).each_batch(of: BATCH_SIZE) do |relation|
+ relation.update_all(update)
+ end
+ end
+end