From bc0794f6800c80536e31b21453043f2bbbc6e7f7 Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Mon, 2 Jul 2018 15:40:18 -0700 Subject: [PATCH] Backport partial index to find repositories that have not been checked This was introduced in https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/5984. --- ...to_projects_for_last_repository_check_at.rb | 18 ++++++++++++++++++ db/schema.rb | 3 ++- 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 db/post_migrate/20180629191052_add_partial_index_to_projects_for_last_repository_check_at.rb diff --git a/db/post_migrate/20180629191052_add_partial_index_to_projects_for_last_repository_check_at.rb b/db/post_migrate/20180629191052_add_partial_index_to_projects_for_last_repository_check_at.rb new file mode 100644 index 00000000000..a701d3678db --- /dev/null +++ b/db/post_migrate/20180629191052_add_partial_index_to_projects_for_last_repository_check_at.rb @@ -0,0 +1,18 @@ +class AddPartialIndexToProjectsForLastRepositoryCheckAt < ActiveRecord::Migration + include Gitlab::Database::MigrationHelpers + + # Set this constant to true if this migration requires downtime. + DOWNTIME = false + + disable_ddl_transaction! + + INDEX_NAME = "index_projects_on_last_repository_check_at" + + def up + add_concurrent_index(:projects, :last_repository_check_at, where: "last_repository_check_at IS NOT NULL", name: INDEX_NAME) + end + + def down + remove_concurrent_index(:projects, :last_repository_check_at, where: "last_repository_check_at IS NOT NULL", name: INDEX_NAME) + end +end diff --git a/db/schema.rb b/db/schema.rb index 0112fc726d4..384a1ec6d37 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20180626125654) do +ActiveRecord::Schema.define(version: 20180629191052) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -1646,6 +1646,7 @@ ActiveRecord::Schema.define(version: 20180626125654) do add_index "projects", ["description"], name: "index_projects_on_description_trigram", using: :gin, opclasses: {"description"=>"gin_trgm_ops"} add_index "projects", ["id"], name: "index_projects_on_id_partial_for_visibility", unique: true, where: "(visibility_level = ANY (ARRAY[10, 20]))", using: :btree add_index "projects", ["last_activity_at"], name: "index_projects_on_last_activity_at", using: :btree + add_index "projects", ["last_repository_check_at"], name: "index_projects_on_last_repository_check_at", where: "(last_repository_check_at IS NOT NULL)", using: :btree add_index "projects", ["last_repository_check_failed"], name: "index_projects_on_last_repository_check_failed", using: :btree add_index "projects", ["last_repository_updated_at"], name: "index_projects_on_last_repository_updated_at", using: :btree add_index "projects", ["name"], name: "index_projects_on_name_trigram", using: :gin, opclasses: {"name"=>"gin_trgm_ops"}