Commit 0a22f17b authored by Yorick Peterse's avatar Yorick Peterse

Merge branch 'add-pushrules-issample-partial-index2' into 'master'

Add push_rules is_sample partial index

See merge request gitlab-org/gitlab-ee!2966
parents da2a5d5e 17cf6816
---
title: Add partial index on push_rules.is_sample
merge_request:
author:
type: other
# See http://doc.gitlab.com/ce/development/migration_style_guide.html
# for more information on how to write migrations for GitLab.
class AddIndexForPushrulesIsSample < ActiveRecord::Migration
include Gitlab::Database::MigrationHelpers
# Set this constant to true if this migration requires downtime.
DOWNTIME = false
# When a migration requires downtime you **must** uncomment the following
# constant and define a short and easy to understand explanation as to why the
# migration requires downtime.
# DOWNTIME_REASON = ''
# When using the methods "add_concurrent_index", "remove_concurrent_index" or
# "add_column_with_default" you must disable the use of transactions
# as these methods can not run in an existing transaction.
# When using "add_concurrent_index" or "remove_concurrent_index" methods make sure
# that either of them is the _only_ method called in the migration,
# any other changes should go in a separate migration.
# This ensures that upon failure _only_ the index creation or removing fails
# and can be retried or reverted easily.
#
# To disable transactions uncomment the following line and remove these
# comments:
disable_ddl_transaction!
# Careful, on MySQL the where clause is ignored. We make the index
# on the same column as the WHERE clause (is_sample) even though
# this is generally a silly thing to do because that way on MySQL
# the resulting index on is_sample will still fix the same
# queries. It'll just waste space indexing all rows where is_sample
# is false as well. In this case there's only a single row where
# is_sample is true so having it be the index key is harmless.
def up
return if index_exists? :push_rules, :is_sample
add_concurrent_index(:push_rules, :is_sample, where: "is_sample")
end
def down
return unless index_exists? :push_rules, :is_sample
remove_concurrent_index(:push_rules, :is_sample, where: "is_sample")
end
end
......@@ -1619,6 +1619,7 @@ ActiveRecord::Schema.define(version: 20170928100231) do
t.boolean "reject_unsigned_commits"
end
add_index "push_rules", ["is_sample"], name: "index_push_rules_on_is_sample", where: "is_sample", using: :btree
add_index "push_rules", ["project_id"], name: "index_push_rules_on_project_id", using: :btree
create_table "redirect_routes", force: :cascade do |t|
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment