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:
authorLuke Duncalfe <lduncalfe@gitlab.com>2019-07-29 21:55:19 +0300
committerMayra Cabrera <mcabrera@gitlab.com>2019-07-29 21:55:19 +0300
commit177463007b1b97d29c7f4f8e279365c1ca6bfc9e (patch)
treec2aee6237ef1603e39ffc5c020bd28159b8672dd /db/migrate/20190715043954_set_issue_id_for_all_versions.rb
parentfe22704a203111ab2146143a4ff9d2e1256aecc7 (diff)
Migrations for adding issue_id to versions table
These migrations do the following: - Adds a new `issue_id` column to `versions`. This fixes an n+1 problem when loading versions for an issue in GraphQL as AR can now load from cache - Change the unique restraint on versions.sha to be scoped to `issue_id` as in order to import version data, we need to allow duplicate `sha` values for versions - Update all versions with an `issue_id` https://gitlab.com/gitlab-org/gitlab-ee/issues/11090
Diffstat (limited to 'db/migrate/20190715043954_set_issue_id_for_all_versions.rb')
-rw-r--r--db/migrate/20190715043954_set_issue_id_for_all_versions.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/db/migrate/20190715043954_set_issue_id_for_all_versions.rb b/db/migrate/20190715043954_set_issue_id_for_all_versions.rb
new file mode 100644
index 00000000000..345b749f1a4
--- /dev/null
+++ b/db/migrate/20190715043954_set_issue_id_for_all_versions.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+class SetIssueIdForAllVersions < ActiveRecord::Migration[5.2]
+ DOWNTIME = false
+
+ def up
+ execute('UPDATE design_management_versions as versions SET issue_id = (
+ SELECT design_management_designs.issue_id
+ FROM design_management_designs
+ INNER JOIN design_management_designs_versions ON design_management_designs.id = design_management_designs_versions.design_id
+ WHERE design_management_designs_versions.version_id = versions.id
+ LIMIT 1
+ )')
+ end
+
+ def down
+ # no-op
+ end
+end