BigW Consortium Gitlab
Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gitlab-ce
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Forest Godfrey
gitlab-ce
Commits
6263ecd3
Commit
6263ecd3
authored
Jul 24, 2017
by
Michael Kozono
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add lower path index to redirect_routes
parent
1a3f550b
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
41 additions
and
1 deletion
+41
-1
mk-add-lower-path-index-to-redirect-routes.yml
...unreleased/mk-add-lower-path-index-to-redirect-routes.yml
+4
-0
20170724214302_add_lower_path_index_to_redirect_routes.rb
...20170724214302_add_lower_path_index_to_redirect_routes.rb
+34
-0
schema.rb
db/schema.rb
+1
-1
setup_postgresql.rake
lib/tasks/migrate/setup_postgresql.rake
+2
-0
No files found.
changelogs/unreleased/mk-add-lower-path-index-to-redirect-routes.yml
0 → 100644
View file @
6263ecd3
---
title
:
Improve redirect route query performance
merge_request
:
13062
author
:
db/migrate/20170724214302_add_lower_path_index_to_redirect_routes.rb
0 → 100644
View file @
6263ecd3
# 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
db/schema.rb
View file @
6263ecd3
...
...
@@ -11,7 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord
::
Schema
.
define
(
version:
201707
17150329
)
do
ActiveRecord
::
Schema
.
define
(
version:
201707
24214302
)
do
# These are extensions that must be enabled in order to support this database
enable_extension
"plpgsql"
...
...
lib/tasks/migrate/setup_postgresql.rake
View file @
6263ecd3
...
...
@@ -4,6 +4,7 @@ require Rails.root.join('db/migrate/20151007120511_namespaces_projects_path_lowe
require
Rails
.
root
.
join
(
'db/migrate/20151008110232_add_users_lower_username_email_indexes'
)
require
Rails
.
root
.
join
(
'db/migrate/20161212142807_add_lower_path_index_to_routes'
)
require
Rails
.
root
.
join
(
'db/migrate/20170317203554_index_routes_path_for_like'
)
require
Rails
.
root
.
join
(
'db/migrate/20170724214302_add_lower_path_index_to_redirect_routes'
)
require
Rails
.
root
.
join
(
'db/migrate/20170503185032_index_redirect_routes_path_for_like'
)
desc
'GitLab | Sets up PostgreSQL'
...
...
@@ -12,5 +13,6 @@ task setup_postgresql: :environment do
AddUsersLowerUsernameEmailIndexes
.
new
.
up
AddLowerPathIndexToRoutes
.
new
.
up
IndexRoutesPathForLike
.
new
.
up
AddLowerPathIndexToRedirectRoutes
.
new
.
up
IndexRedirectRoutesPathForLike
.
new
.
up
end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment