diff options
author | Robert Speicher <robert@gitlab.com> | 2017-09-14 20:55:10 +0000 |
---|---|---|
committer | Robert Speicher <robert@gitlab.com> | 2017-09-14 20:55:10 +0000 |
commit | ec3b3797e789d82200de2694458cc7cde2093549 (patch) | |
tree | 1048dc365e10eba2816afc69ca2ca074d8fc42b3 | |
parent | 88f02b0f04e97de864dd9c152e4a41ab8683f5da (diff) | |
parent | 590ed2ae27ea6d7888ddc5ccd9dcf502bde6e853 (diff) | |
download | gitlab-ce-ec3b3797e789d82200de2694458cc7cde2093549.tar.gz |
Merge branch 'indexes-for-recent-push-events' into 'master'
Add missing index for getting recent push events
See merge request gitlab-org/gitlab-ce!14273
-rw-r--r-- | db/migrate/20170914135630_add_index_for_recent_push_events.rb | 40 | ||||
-rw-r--r-- | db/schema.rb | 4 |
2 files changed, 42 insertions, 2 deletions
diff --git a/db/migrate/20170914135630_add_index_for_recent_push_events.rb b/db/migrate/20170914135630_add_index_for_recent_push_events.rb new file mode 100644 index 00000000000..99f593b0465 --- /dev/null +++ b/db/migrate/20170914135630_add_index_for_recent_push_events.rb @@ -0,0 +1,40 @@ +# See http://doc.gitlab.com/ce/development/migration_style_guide.html +# for more information on how to write migrations for GitLab. + +class AddIndexForRecentPushEvents < ActiveRecord::Migration + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + add_concurrent_index_if_not_present( + :merge_requests, + [:source_project_id, :source_branch] + ) + + remove_concurrent_index_if_present(:merge_requests, :source_project_id) + end + + def down + add_concurrent_index_if_not_present(:merge_requests, :source_project_id) + + remove_concurrent_index_if_present( + :merge_requests, + [:source_project_id, :source_branch] + ) + end + + def add_concurrent_index_if_not_present(table, columns) + return if index_exists?(table, columns) + + add_concurrent_index(table, columns) + end + + def remove_concurrent_index_if_present(table, columns) + return unless index_exists?(table, columns) + + remove_concurrent_index(table, columns) + end +end diff --git a/db/schema.rb b/db/schema.rb index dd0ef04788b..2d8c33591f0 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: 20170913131410) do +ActiveRecord::Schema.define(version: 20170914135630) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -892,7 +892,7 @@ ActiveRecord::Schema.define(version: 20170913131410) do add_index "merge_requests", ["head_pipeline_id"], name: "index_merge_requests_on_head_pipeline_id", using: :btree add_index "merge_requests", ["milestone_id"], name: "index_merge_requests_on_milestone_id", using: :btree add_index "merge_requests", ["source_branch"], name: "index_merge_requests_on_source_branch", using: :btree - add_index "merge_requests", ["source_project_id"], name: "index_merge_requests_on_source_project_id", using: :btree + add_index "merge_requests", ["source_project_id", "source_branch"], name: "index_merge_requests_on_source_project_id_and_source_branch", using: :btree add_index "merge_requests", ["target_branch"], name: "index_merge_requests_on_target_branch", using: :btree add_index "merge_requests", ["target_project_id", "iid"], name: "index_merge_requests_on_target_project_id_and_iid", unique: true, using: :btree add_index "merge_requests", ["title"], name: "index_merge_requests_on_title", using: :btree |