Skip to content

Resolve "Add a `merge_request_diff_id` column to `merge_requests`"

Local tests

gitlabhq_development=# SELECT COUNT(*) FROM merge_requests;
 count
-------
 13938
(1 row)

Time: 3.700 ms
gitlabhq_development=# SELECT COUNT(*) FROM merge_request_diffs;
 count
-------
 85176
(1 row)

Time: 9.955 ms

Migration output:

== 20171025110159 AddLatestMergeRequestDiffIdToMergeRequests: migrating =======
-- add_column(:merge_requests, :latest_merge_request_diff_id, :integer, {:index=>true})
   -> 0.0024s
-- transaction_open?()
   -> 0.0000s
-- execute("SET statement_timeout TO 0")
   -> 0.0004s
-- execute("ALTER TABLE merge_requests\nADD CONSTRAINT fk_06067f5644\nFOREIGN KEY (latest_merge_request_diff_id)\nREFERENCES merge_request_diffs (id)\nON DELETE SET NULL\nNOT VALID;\n")
   -> 0.0024s
-- execute("ALTER TABLE merge_requests VALIDATE CONSTRAINT fk_06067f5644;")
   -> 0.0114s
== 20171025110159 AddLatestMergeRequestDiffIdToMergeRequests: migrated (0.0172s)

== 20171026082505 PopulateMergeRequestsLatestMergeRequestDiffId: migrating ====
== 20171026082505 PopulateMergeRequestsLatestMergeRequestDiffId: migrated (1.2350s)

Database Checklist

When adding migrations:

  • Updated db/schema.rb
  • Added a down method so the migration can be reverted
  • Added the output of the migration(s) to the MR body
  • Added the execution time of the migration(s) to the MR body
  • Added tests for the migration in spec/migrations if necessary (e.g. when migrating data)
  • Made sure the migration won't interfere with a running GitLab cluster, for example by disabling transactions for long running migrations

General Checklist

Part of #37631 (closed).

Edited by Yorick Peterse

Merge request reports