Skip to content
代码片段 群组 项目
提交 4a445260 编辑于 作者: Grzegorz Bizon's avatar Grzegorz Bizon
浏览文件

Merge branch 'morefice/prepare-ci-builds-metadata-partitioning-2' into 'master'

Prepare Ci::BuildMetadata for partitioning 2/3

See merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/97926



Merged-by: default avatarGrzegorz Bizon <grzegorz@gitlab.com>
Approved-by: default avatarGrzegorz Bizon <grzegorz@gitlab.com>
Co-authored-by: default avatarMaxime Orefice <morefice@gitlab.com>
No related branches found
No related tags found
无相关合并请求
...@@ -11,6 +11,7 @@ class BuildMetadata < Ci::ApplicationRecord ...@@ -11,6 +11,7 @@ class BuildMetadata < Ci::ApplicationRecord
include Gitlab::Utils::StrongMemoize include Gitlab::Utils::StrongMemoize
self.table_name = 'ci_builds_metadata' self.table_name = 'ci_builds_metadata'
self.primary_key = 'id'
belongs_to :build, class_name: 'CommitStatus' belongs_to :build, class_name: 'CommitStatus'
belongs_to :project belongs_to :project
......
# frozen_string_literal: true
class PrepareCiBuildsMetadataForPartitioningPrimaryKey < Gitlab::Database::Migration[2.0]
disable_ddl_transaction!
TABLE_NAME = 'ci_builds_metadata'
PRIMARY_KEY = 'ci_builds_metadata_pkey'
NEW_INDEX_NAME = 'index_ci_builds_metadata_on_id_partition_id_unique'
OLD_INDEX_NAME = 'index_ci_builds_metadata_on_id_unique'
def up
with_lock_retries(raise_on_exhaustion: true) do
execute("ALTER TABLE #{TABLE_NAME} DROP CONSTRAINT #{PRIMARY_KEY} CASCADE")
rename_index(TABLE_NAME, NEW_INDEX_NAME, PRIMARY_KEY)
execute("ALTER TABLE #{TABLE_NAME} ADD CONSTRAINT #{PRIMARY_KEY} " \
"PRIMARY KEY USING INDEX #{PRIMARY_KEY}")
end
end
# rolling back this migration is time consuming with the creation of these two indexes
def down
add_concurrent_index(TABLE_NAME, :id, unique: true, name: OLD_INDEX_NAME)
add_concurrent_index(TABLE_NAME, [:id, :partition_id], unique: true, name: NEW_INDEX_NAME)
with_lock_retries(raise_on_exhaustion: true) do
execute("ALTER TABLE #{TABLE_NAME} DROP CONSTRAINT #{PRIMARY_KEY} CASCADE")
rename_index(TABLE_NAME, OLD_INDEX_NAME, PRIMARY_KEY)
execute("ALTER TABLE #{TABLE_NAME} ADD CONSTRAINT #{PRIMARY_KEY} " \
"PRIMARY KEY USING INDEX #{PRIMARY_KEY}")
end
end
end
081480492cbe6e631f0357b181a883a2bc7f34566f23f119c0ba4df59ee363d6
\ No newline at end of file
...@@ -25045,7 +25045,7 @@ ALTER TABLE ONLY ci_build_trace_metadata ...@@ -25045,7 +25045,7 @@ ALTER TABLE ONLY ci_build_trace_metadata
ADD CONSTRAINT ci_build_trace_metadata_pkey PRIMARY KEY (build_id); ADD CONSTRAINT ci_build_trace_metadata_pkey PRIMARY KEY (build_id);
   
ALTER TABLE ONLY ci_builds_metadata ALTER TABLE ONLY ci_builds_metadata
ADD CONSTRAINT ci_builds_metadata_pkey PRIMARY KEY (id); ADD CONSTRAINT ci_builds_metadata_pkey PRIMARY KEY (id, partition_id);
   
ALTER TABLE ONLY ci_builds ALTER TABLE ONLY ci_builds
ADD CONSTRAINT ci_builds_pkey PRIMARY KEY (id); ADD CONSTRAINT ci_builds_pkey PRIMARY KEY (id);
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册