diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-02-15 11:58:20 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-02-15 11:58:20 +0300 |
commit | 59c9ff627603da03f6a7c330d57a2c765b3c24a3 (patch) | |
tree | dd8f3a2fbc9564818a77d2d8798fcc464d220e8e /db/migrate | |
parent | 30b4659f2c485885324fd8d67fcd92a2939310a3 (diff) |
Add latest changes from gitlab-org/gitlab@14-7-stable-ee
Diffstat (limited to 'db/migrate')
-rw-r--r-- | db/migrate/20220203091304_fix_unique_packages_index_excluding_pending_destruction_status.rb | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/db/migrate/20220203091304_fix_unique_packages_index_excluding_pending_destruction_status.rb b/db/migrate/20220203091304_fix_unique_packages_index_excluding_pending_destruction_status.rb new file mode 100644 index 00000000000..c30d8de23db --- /dev/null +++ b/db/migrate/20220203091304_fix_unique_packages_index_excluding_pending_destruction_status.rb @@ -0,0 +1,28 @@ +# frozen_string_literal: true + +class FixUniquePackagesIndexExcludingPendingDestructionStatus < Gitlab::Database::Migration[1.0] + disable_ddl_transaction! + + GO_UNIQUE_INDEX_NAME = 'index_packages_on_project_id_name_version_unique_when_golang' + GENERIC_UNIQUE_INDEX_NAME = 'index_packages_on_project_id_name_version_unique_when_generic' + HELM_UNIQUE_INDEX_NAME = 'index_packages_on_project_id_name_version_unique_when_helm' + + NEW_GO_UNIQUE_INDEX_NAME = 'idx_packages_on_project_id_name_version_unique_when_golang' + NEW_GENERIC_UNIQUE_INDEX_NAME = 'idx_packages_on_project_id_name_version_unique_when_generic' + NEW_HELM_UNIQUE_INDEX_NAME = 'idx_packages_on_project_id_name_version_unique_when_helm' + + def up + add_concurrent_index :packages_packages, [:project_id, :name, :version], unique: true, name: NEW_GO_UNIQUE_INDEX_NAME, where: 'package_type = 8 AND status != 4' + add_concurrent_index :packages_packages, [:project_id, :name, :version], unique: true, name: NEW_GENERIC_UNIQUE_INDEX_NAME, where: 'package_type = 7 AND status != 4' + add_concurrent_index :packages_packages, [:project_id, :name, :version], unique: true, name: NEW_HELM_UNIQUE_INDEX_NAME, where: 'package_type = 11 AND status != 4' + + remove_concurrent_index_by_name :packages_packages, GO_UNIQUE_INDEX_NAME + remove_concurrent_index_by_name :packages_packages, GENERIC_UNIQUE_INDEX_NAME + remove_concurrent_index_by_name :packages_packages, HELM_UNIQUE_INDEX_NAME + end + + def down + # no-op + # We can't guarantee that the old index can be recreated since it targets a set larger that the new index. + end +end |