diff options
author | Andreas Brandl <abrandl@gitlab.com> | 2018-12-06 12:17:14 +0000 |
---|---|---|
committer | Andreas Brandl <abrandl@gitlab.com> | 2018-12-06 12:17:14 +0000 |
commit | 39c769aee8af82cd755a4c666a22eb5d6bec808e (patch) | |
tree | c08c6622d96152a86f35ea81f9640b83c6b54a47 /db | |
parent | e46575a167f294c3fbd2a5b6d3b8bf764dc496b0 (diff) | |
parent | abf3c9680e132af49662f3600dc601b2d995b81c (diff) | |
download | gitlab-ce-39c769aee8af82cd755a4c666a22eb5d6bec808e.tar.gz |
Merge branch '53994-add-missing-ci_builds-partial-indices' into 'master'
Resolve "Database schema diff 4 - (source) Missing partial index for ci_builds in the source (index_ci_builds_project_id_and_status_for_live_jobs_partial)"
Closes #53994
See merge request gitlab-org/gitlab-ce!23268
Diffstat (limited to 'db')
-rw-r--r-- | db/migrate/20181121101842_add_ci_builds_partial_index_on_project_id_and_status.rb | 33 | ||||
-rw-r--r-- | db/migrate/20181121101843_remove_redundant_ci_builds_partial_index.rb | 33 | ||||
-rw-r--r-- | db/schema.rb | 1 |
3 files changed, 67 insertions, 0 deletions
diff --git a/db/migrate/20181121101842_add_ci_builds_partial_index_on_project_id_and_status.rb b/db/migrate/20181121101842_add_ci_builds_partial_index_on_project_id_and_status.rb new file mode 100644 index 00000000000..5b47a279438 --- /dev/null +++ b/db/migrate/20181121101842_add_ci_builds_partial_index_on_project_id_and_status.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +# See http://doc.gitlab.com/ce/development/migration_style_guide.html +# for more information on how to write migrations for GitLab. + +class AddCiBuildsPartialIndexOnProjectIdAndStatus < ActiveRecord::Migration + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + add_concurrent_index(*index_arguments) + end + + def down + remove_concurrent_index(*index_arguments) + end + + private + + def index_arguments + [ + :ci_builds, + [:project_id, :status], + { + name: 'index_ci_builds_project_id_and_status_for_live_jobs_partial2', + where: "(((type)::text = 'Ci::Build'::text) AND ((status)::text = ANY (ARRAY[('running'::character varying)::text, ('pending'::character varying)::text, ('created'::character varying)::text])))" + } + ] + end +end diff --git a/db/migrate/20181121101843_remove_redundant_ci_builds_partial_index.rb b/db/migrate/20181121101843_remove_redundant_ci_builds_partial_index.rb new file mode 100644 index 00000000000..a0a02e81323 --- /dev/null +++ b/db/migrate/20181121101843_remove_redundant_ci_builds_partial_index.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +# See http://doc.gitlab.com/ce/development/migration_style_guide.html +# for more information on how to write migrations for GitLab. + +class RemoveRedundantCiBuildsPartialIndex < ActiveRecord::Migration + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + remove_concurrent_index(*index_arguments) + end + + def down + add_concurrent_index(*index_arguments) + end + + private + + def index_arguments + [ + :ci_builds, + [:project_id, :status], + { + name: 'index_ci_builds_project_id_and_status_for_live_jobs_partial', + where: "((status)::text = ANY (ARRAY[('running'::character varying)::text, ('pending'::character varying)::text, ('created'::character varying)::text]))" + } + ] + end +end diff --git a/db/schema.rb b/db/schema.rb index a7d43fb742b..5bc7c7c71fc 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -354,6 +354,7 @@ ActiveRecord::Schema.define(version: 20181129104944) do t.index ["commit_id", "type", "ref"], name: "index_ci_builds_on_commit_id_and_type_and_ref", using: :btree t.index ["id"], name: "partial_index_ci_builds_on_id_with_legacy_artifacts", where: "(artifacts_file <> ''::text)", using: :btree t.index ["project_id", "id"], name: "index_ci_builds_on_project_id_and_id", using: :btree + t.index ["project_id", "status"], name: "index_ci_builds_project_id_and_status_for_live_jobs_partial2", where: "(((type)::text = 'Ci::Build'::text) AND ((status)::text = ANY (ARRAY[('running'::character varying)::text, ('pending'::character varying)::text, ('created'::character varying)::text])))", using: :btree t.index ["protected"], name: "index_ci_builds_on_protected", using: :btree t.index ["runner_id"], name: "index_ci_builds_on_runner_id", using: :btree t.index ["scheduled_at"], name: "partial_index_ci_builds_on_scheduled_at_with_scheduled_jobs", where: "((scheduled_at IS NOT NULL) AND ((type)::text = 'Ci::Build'::text) AND ((status)::text = 'scheduled'::text))", using: :btree |