Skip to content
代码片段 群组 项目
未验证 提交 2c6361ef 编辑于 作者: Marius Bobin's avatar Marius Bobin 提交者: GitLab
浏览文件

Merge branch '422835-async-index-creation2' into 'master'

Prepare async index for p_ci_builds.upstream_pipeline_id and commit_id

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



Merged-by: default avatarMarius Bobin <mbobin@gitlab.com>
Approved-by: default avatarVitali Tatarintev <vtatarintev@gitlab.com>
Approved-by: default avatarMarius Bobin <mbobin@gitlab.com>
Reviewed-by: default avatarVitali Tatarintev <vtatarintev@gitlab.com>
Reviewed-by: default avatarTianwen Chen <tchen@gitlab.com>
Co-authored-by: default avatarTianwen Chen <tchen@gitlab.com>
No related branches found
No related tags found
无相关合并请求
# frozen_string_literal: true
class PrepareAsyncIndexForPCiBuildsPart2 < Gitlab::Database::Migration[2.2]
include Gitlab::Database::PartitioningMigrationHelpers
milestone '16.9'
disable_ddl_transaction!
INDEXES = [
[[:upstream_pipeline_id_convert_to_bigint], "p_ci_builds_upstream_pipeline_id_bigint_idx",
{ where: 'upstream_pipeline_id_convert_to_bigint IS NOT NULL' }],
[[:commit_id_convert_to_bigint, :type, :ref], "p_ci_builds_commit_id_bigint_type_ref_idx", {}],
[[:commit_id_convert_to_bigint, :artifacts_expire_at, :id],
"p_ci_builds_commit_id_bigint_artifacts_expire_at_id_idx", {
where: "type::text = 'Ci::Build'::text AND (retried = false OR retried IS NULL) AND (name::text = ANY (ARRAY['sast'::character varying::text, 'secret_detection'::character varying::text, 'dependency_scanning'::character varying::text, 'container_scanning'::character varying::text, 'dast'::character varying::text]))" # rubocop:disable Layout/LineLength -- Where clause is just too long.
}]
]
TABLE_NAME = :p_ci_builds
def up
Gitlab::Database::PostgresPartitionedTable.each_partition(TABLE_NAME) do |partition|
INDEXES.each do |columns, routing_table_index_name, options|
index_name = generated_index_name(partition.identifier, routing_table_index_name)
prepare_async_index partition.identifier, columns, name: index_name, **options
end
end
end
def down
Gitlab::Database::PostgresPartitionedTable.each_partition(TABLE_NAME) do |partition|
INDEXES.each do |columns, routing_table_index_name, options|
index_name = generated_index_name(partition.identifier, routing_table_index_name)
unprepare_async_index partition.identifier, columns, name: index_name, **options
end
end
end
end
8962d0826a8941a8fa2eb82d6674999f185041a91f623cd9284dfe98e8437055
\ No newline at end of file
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册