diff options
author | Michael Kozono <mkozono@gmail.com> | 2017-07-25 01:09:55 +0300 |
---|---|---|
committer | Michael Kozono <mkozono@gmail.com> | 2017-07-25 19:22:30 +0300 |
commit | 6263ecd3a42312a62957674665e35d3590192123 (patch) | |
tree | 8f1f7a3448138a376b151b3dd8e2d1a8ed3266d1 /db | |
parent | 1a3f550ba8de6b837168f092651f71b1be38a3ad (diff) |
Add lower path index to redirect_routes
Diffstat (limited to 'db')
-rw-r--r-- | db/migrate/20170724214302_add_lower_path_index_to_redirect_routes.rb | 34 | ||||
-rw-r--r-- | db/schema.rb | 2 |
2 files changed, 35 insertions, 1 deletions
diff --git a/db/migrate/20170724214302_add_lower_path_index_to_redirect_routes.rb b/db/migrate/20170724214302_add_lower_path_index_to_redirect_routes.rb new file mode 100644 index 00000000000..db60c2087b9 --- /dev/null +++ b/db/migrate/20170724214302_add_lower_path_index_to_redirect_routes.rb @@ -0,0 +1,34 @@ +# See http://doc.gitlab.com/ce/development/migration_style_guide.html +# for more information on how to write migrations for GitLab. + +class AddLowerPathIndexToRedirectRoutes < ActiveRecord::Migration + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + INDEX_NAME = 'index_on_redirect_routes_lower_path' + + disable_ddl_transaction! + + def up + return unless Gitlab::Database.postgresql? + + execute "CREATE INDEX CONCURRENTLY #{INDEX_NAME} ON redirect_routes (LOWER(path));" + end + + def down + return unless Gitlab::Database.postgresql? + + # Why not use remove_concurrent_index_by_name? + # + # `index_exists?` doesn't work on this index. Perhaps this is related to the + # fact that the index doesn't show up in the schema. And apparently it isn't + # trivial to write a query that checks for an index. BUT there is a + # convenient `IF EXISTS` parameter for `DROP INDEX`. + if supports_drop_index_concurrently? + disable_statement_timeout + execute "DROP INDEX CONCURRENTLY IF EXISTS #{INDEX_NAME};" + else + execute "DROP INDEX IF EXISTS #{INDEX_NAME};" + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 284b2068166..7724af5b610 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: 20170717150329) do +ActiveRecord::Schema.define(version: 20170724214302) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" |