Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
heptapod
heptapod
Commits
df3bd9a70513
Commit
5d9762b3
authored
Mar 07, 2017
by
Douwe Maan
Browse files
Add cop to ensure reversibility of add_concurrent_index
parent
9ae75404dc22
Changes
22
Hide whitespace changes
Inline
Side-by-side
db/migrate/20160615142710_add_index_on_requested_at_to_members.rb
View file @
df3bd9a7
...
...
@@ -3,7 +3,11 @@ class AddIndexOnRequestedAtToMembers < ActiveRecord::Migration
disable_ddl_transaction!
def
change
def
up
add_concurrent_index
:members
,
:requested_at
end
def
down
remove_index
:members
,
:requested_at
if
index_exists?
:members
,
:requested_at
end
end
db/migrate/20160620115026_add_index_on_runners_locked.rb
View file @
df3bd9a7
...
...
@@ -6,7 +6,11 @@ class AddIndexOnRunnersLocked < ActiveRecord::Migration
disable_ddl_transaction!
def
change
def
up
add_concurrent_index
:ci_runners
,
:locked
end
def
down
remove_index
:ci_runners
,
:locked
if
index_exists?
:ci_runners
,
:locked
end
end
db/migrate/20160715134306_add_index_for_pipeline_user_id.rb
View file @
df3bd9a7
...
...
@@ -3,7 +3,11 @@ class AddIndexForPipelineUserId < ActiveRecord::Migration
disable_ddl_transaction!
def
change
def
up
add_concurrent_index
:ci_commits
,
:user_id
end
def
down
remove_index
:ci_commits
,
:user_id
if
index_exists?
:ci_commits
,
:user_id
end
end
db/migrate/20160805041956_add_deleted_at_to_namespaces.rb
View file @
df3bd9a7
...
...
@@ -5,8 +5,15 @@ class AddDeletedAtToNamespaces < ActiveRecord::Migration
disable_ddl_transaction!
def
change
def
up
add_column
:namespaces
,
:deleted_at
,
:datetime
add_concurrent_index
:namespaces
,
:deleted_at
end
def
down
remove_index
:namespaces
,
:deleted_at
if
index_exists?
:namespaces
,
:deleted_at
remove_column
:namespaces
,
:deleted_at
end
end
db/migrate/20160808085602_add_index_for_build_token.rb
View file @
df3bd9a7
...
...
@@ -6,7 +6,11 @@ class AddIndexForBuildToken < ActiveRecord::Migration
disable_ddl_transaction!
def
change
def
up
add_concurrent_index
:ci_builds
,
:token
,
unique:
true
end
def
down
remove_index
:ci_builds
,
:token
,
unique:
true
if
index_exists?
:ci_builds
,
:token
,
unique:
true
end
end
db/migrate/20160819221631_add_index_to_note_discussion_id.rb
View file @
df3bd9a7
...
...
@@ -8,7 +8,11 @@ class AddIndexToNoteDiscussionId < ActiveRecord::Migration
disable_ddl_transaction!
def
change
def
up
add_concurrent_index
:notes
,
:discussion_id
end
def
down
remove_index
:notes
,
:discussion_id
if
index_exists?
:notes
,
:discussion_id
end
end
db/migrate/20160819232256_add_incoming_email_token_to_users.rb
View file @
df3bd9a7
...
...
@@ -9,8 +9,15 @@ class AddIncomingEmailTokenToUsers < ActiveRecord::Migration
disable_ddl_transaction!
def
change
def
up
add_column
:users
,
:incoming_email_token
,
:string
add_concurrent_index
:users
,
:incoming_email_token
end
def
down
remove_index
:users
,
:incoming_email_token
if
index_exists?
:users
,
:incoming_email_token
remove_column
:users
,
:incoming_email_token
end
end
db/migrate/20160919145149_add_group_id_to_labels.rb
View file @
df3bd9a7
...
...
@@ -5,9 +5,15 @@ class AddGroupIdToLabels < ActiveRecord::Migration
disable_ddl_transaction!
def
change
def
up
add_column
:labels
,
:group_id
,
:integer
add_foreign_key
:labels
,
:namespaces
,
column: :group_id
,
on_delete: :cascade
# rubocop: disable Migration/AddConcurrentForeignKey
add_concurrent_index
:labels
,
:group_id
end
def
down
remove_index
:labels
,
:group_id
if
index_exists?
:labels
,
:group_id
remove_foreign_key
:labels
,
:namespaces
,
column: :group_id
remove_column
:labels
,
:group_id
end
end
db/migrate/20160920160832_add_index_to_labels_title.rb
View file @
df3bd9a7
...
...
@@ -5,7 +5,11 @@ class AddIndexToLabelsTitle < ActiveRecord::Migration
disable_ddl_transaction!
def
change
def
up
add_concurrent_index
:labels
,
:title
end
def
down
remove_index
:labels
,
:title
if
index_exists?
:labels
,
:title
end
end
db/migrate/20161020083353_add_pipeline_id_to_merge_request_metrics.rb
View file @
df3bd9a7
...
...
@@ -25,9 +25,15 @@ class AddPipelineIdToMergeRequestMetrics < ActiveRecord::Migration
# comments:
# disable_ddl_transaction!
def
change
def
up
add_column
:merge_request_metrics
,
:pipeline_id
,
:integer
add_concurrent_index
:merge_request_metrics
,
:pipeline_id
add_foreign_key
:merge_request_metrics
,
:ci_commits
,
column: :pipeline_id
,
on_delete: :cascade
# rubocop: disable Migration/AddConcurrentForeignKey
add_concurrent_index
:merge_request_metrics
,
:pipeline_id
end
def
down
remove_index
:merge_request_metrics
,
:pipeline_id
if
index_exists?
:merge_request_metrics
,
:pipeline_id
remove_foreign_key
:merge_request_metrics
,
:ci_commits
,
column: :pipeline_id
remove_column
:merge_request_metrics
,
:pipeline_id
end
end
db/migrate/20161106185620_add_project_import_data_project_index.rb
View file @
df3bd9a7
...
...
@@ -6,7 +6,11 @@ class AddProjectImportDataProjectIndex < ActiveRecord::Migration
disable_ddl_transaction!
def
change
def
up
add_concurrent_index
:project_import_data
,
:project_id
end
def
down
remove_index
:project_import_data
,
:project_id
if
index_exists?
:project_import_data
,
:project_id
end
end
db/migrate/20161124111395_add_index_to_parent_id.rb
View file @
df3bd9a7
...
...
@@ -8,7 +8,11 @@ class AddIndexToParentId < ActiveRecord::Migration
disable_ddl_transaction!
def
change
def
up
add_concurrent_index
(
:namespaces
,
[
:parent_id
,
:id
],
unique:
true
)
end
def
down
remove_index
:namespaces
,
[
:parent_id
,
:id
]
if
index_exists?
:namespaces
,
[
:parent_id
,
:id
]
end
end
db/migrate/20161202152035_add_index_to_routes.rb
View file @
df3bd9a7
...
...
@@ -9,8 +9,13 @@ class AddIndexToRoutes < ActiveRecord::Migration
disable_ddl_transaction!
def
change
def
up
add_concurrent_index
(
:routes
,
:path
,
unique:
true
)
add_concurrent_index
(
:routes
,
[
:source_type
,
:source_id
],
unique:
true
)
end
def
down
remove_index
(
:routes
,
:path
)
if
index_exists?
:routes
,
:path
remove_index
(
:routes
,
[
:source_type
,
:source_id
])
if
index_exists?
:routes
,
[
:source_type
,
:source_id
]
end
end
db/migrate/20161209153400_add_unique_index_for_environment_slug.rb
View file @
df3bd9a7
...
...
@@ -9,7 +9,11 @@ class AddUniqueIndexForEnvironmentSlug < ActiveRecord::Migration
disable_ddl_transaction!
def
change
def
up
add_concurrent_index
:environments
,
[
:project_id
,
:slug
],
unique:
true
end
def
down
remove_index
:environments
,
[
:project_id
,
:slug
],
unique:
true
if
index_exists?
:environments
,
[
:project_id
,
:slug
]
end
end
db/migrate/20170204181513_add_index_to_labels_for_type_and_project.rb
View file @
df3bd9a7
...
...
@@ -5,7 +5,11 @@ class AddIndexToLabelsForTypeAndProject < ActiveRecord::Migration
disable_ddl_transaction!
def
change
def
up
add_concurrent_index
:labels
,
[
:type
,
:project_id
]
end
def
down
remove_index
:labels
,
[
:type
,
:project_id
]
if
index_exists?
:labels
,
[
:type
,
:project_id
]
end
end
db/migrate/20170210062829_add_index_to_labels_for_title_and_project.rb
View file @
df3bd9a7
...
...
@@ -5,8 +5,13 @@ class AddIndexToLabelsForTitleAndProject < ActiveRecord::Migration
disable_ddl_transaction!
def
change
def
up
add_concurrent_index
:labels
,
:title
add_concurrent_index
:labels
,
:project_id
end
def
down
remove_index
:labels
,
:title
if
index_exists?
:labels
,
:title
remove_index
:labels
,
:project_id
if
index_exists?
:labels
,
:project_id
end
end
db/migrate/20170210075922_add_index_to_ci_trigger_requests_for_commit_id.rb
View file @
df3bd9a7
...
...
@@ -5,7 +5,11 @@ class AddIndexToCiTriggerRequestsForCommitId < ActiveRecord::Migration
disable_ddl_transaction!
def
change
def
up
add_concurrent_index
:ci_trigger_requests
,
:commit_id
end
def
down
remove_index
:ci_trigger_requests
,
:commit_id
if
index_exists?
:ci_trigger_requests
,
:commit_id
end
end
db/migrate/20170210103609_add_index_to_user_agent_detail.rb
View file @
df3bd9a7
...
...
@@ -8,7 +8,11 @@ class AddIndexToUserAgentDetail < ActiveRecord::Migration
disable_ddl_transaction!
def
change
add_concurrent_index
(
:user_agent_details
,
[
:subject_id
,
:subject_type
])
def
up
add_concurrent_index
:user_agent_details
,
[
:subject_id
,
:subject_type
]
end
def
down
remove_index
:user_agent_details
,
[
:subject_id
,
:subject_type
]
if
index_exists?
:user_agent_details
,
[
:subject_id
,
:subject_type
]
end
end
db/migrate/20170216135621_add_index_for_latest_successful_pipeline.rb
View file @
df3bd9a7
...
...
@@ -4,7 +4,11 @@ class AddIndexForLatestSuccessfulPipeline < ActiveRecord::Migration
disable_ddl_transaction!
def
change
add_concurrent_index
(
:ci_commits
,
[
:gl_project_id
,
:ref
,
:status
])
def
up
add_concurrent_index
:ci_commits
,
[
:gl_project_id
,
:ref
,
:status
]
end
def
down
remove_index
:ci_commits
,
[
:gl_project_id
,
:ref
,
:status
]
if
index_exists?
:ci_commits
,
[
:gl_project_id
,
:ref
,
:status
]
end
end
rubocop/cop/migration/add_concurrent_index.rb
0 → 100644
View file @
df3bd9a7
require_relative
'../../migration_helpers'
module
RuboCop
module
Cop
module
Migration
# Cop that checks if `add_concurrent_index` is used with `up`/`down` methods
# and not `change`.
class
AddConcurrentIndex
<
RuboCop
::
Cop
::
Cop
include
MigrationHelpers
MSG
=
'`add_concurrent_index` is not reversible so you must manually define '
\
'the `up` and `down` methods in your migration class, using `remove_index` in `down`'
.
freeze
def
on_send
(
node
)
return
unless
in_migration?
(
node
)
name
=
node
.
children
[
1
]
return
unless
name
==
:add_concurrent_index
node
.
each_ancestor
(
:def
)
do
|
def_node
|
next
unless
method_name
(
def_node
)
==
:change
add_offense
(
def_node
,
:name
)
end
end
def
method_name
(
node
)
node
.
children
.
first
end
end
end
end
end
Prev
1
2
Next
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