diff options
author | Luke Duncalfe <lduncalfe@gitlab.com> | 2019-07-29 18:55:19 +0000 |
---|---|---|
committer | Mayra Cabrera <mcabrera@gitlab.com> | 2019-07-29 18:55:19 +0000 |
commit | 177463007b1b97d29c7f4f8e279365c1ca6bfc9e (patch) | |
tree | c2aee6237ef1603e39ffc5c020bd28159b8672dd /db/post_migrate/20190715044501_add_unique_issue_id_sha_index_to_versions.rb | |
parent | fe22704a203111ab2146143a4ff9d2e1256aecc7 (diff) | |
download | gitlab-ce-177463007b1b97d29c7f4f8e279365c1ca6bfc9e.tar.gz |
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/post_migrate/20190715044501_add_unique_issue_id_sha_index_to_versions.rb')
-rw-r--r-- | db/post_migrate/20190715044501_add_unique_issue_id_sha_index_to_versions.rb | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/db/post_migrate/20190715044501_add_unique_issue_id_sha_index_to_versions.rb b/db/post_migrate/20190715044501_add_unique_issue_id_sha_index_to_versions.rb new file mode 100644 index 00000000000..27b0c9648f9 --- /dev/null +++ b/db/post_migrate/20190715044501_add_unique_issue_id_sha_index_to_versions.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +class AddUniqueIssueIdShaIndexToVersions < ActiveRecord::Migration[5.2] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + add_concurrent_index :design_management_versions, [:sha, :issue_id], unique: true, using: :btree + end + + def down + remove_concurrent_index :design_management_versions, [:sha, :issue_id] + end +end |