diff options
author | Andreas Brandl <abrandl@gitlab.com> | 2018-03-20 15:50:07 +0100 |
---|---|---|
committer | Andreas Brandl <abrandl@gitlab.com> | 2018-03-20 18:44:00 +0100 |
commit | c914883a2b350bb53313df3eb97e6e0064d9f655 (patch) | |
tree | dd180c3287f0899e7a4953c36d4bb8060ed5a144 /db/migrate/20170713104829_add_foreign_key_to_merge_requests.rb | |
parent | 1362d9fe1383a2fa2cca563435064e622ec8e043 (diff) | |
download | gitlab-ce-c914883a2b350bb53313df3eb97e6e0064d9f655.tar.gz |
Shortcut concurrent foreign key creation if already exists.ab-43887-concurrent-migration-helpers
Closes #43887.
Diffstat (limited to 'db/migrate/20170713104829_add_foreign_key_to_merge_requests.rb')
-rw-r--r-- | db/migrate/20170713104829_add_foreign_key_to_merge_requests.rb | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/db/migrate/20170713104829_add_foreign_key_to_merge_requests.rb b/db/migrate/20170713104829_add_foreign_key_to_merge_requests.rb index c25d4fd5986..c409915ceed 100644 --- a/db/migrate/20170713104829_add_foreign_key_to_merge_requests.rb +++ b/db/migrate/20170713104829_add_foreign_key_to_merge_requests.rb @@ -23,23 +23,15 @@ class AddForeignKeyToMergeRequests < ActiveRecord::Migration merge_requests.update_all(head_pipeline_id: nil) end - unless foreign_key_exists?(:merge_requests, :head_pipeline_id) + unless foreign_key_exists?(:merge_requests, column: :head_pipeline_id) add_concurrent_foreign_key(:merge_requests, :ci_pipelines, column: :head_pipeline_id, on_delete: :nullify) end end def down - if foreign_key_exists?(:merge_requests, :head_pipeline_id) + if foreign_key_exists?(:merge_requests, column: :head_pipeline_id) remove_foreign_key(:merge_requests, column: :head_pipeline_id) end end - - private - - def foreign_key_exists?(table, column) - foreign_keys(table).any? do |key| - key.options[:column] == column.to_s - end - end end |