diff options
author | Z.J. van de Weg <git@zjvandeweg.nl> | 2017-05-31 19:15:54 +0200 |
---|---|---|
committer | Z.J. van de Weg <git@zjvandeweg.nl> | 2017-06-01 09:47:39 +0200 |
commit | c4067ed6eda1757e3757f22ad8587eeaa04d4be5 (patch) | |
tree | 8b4f0bf4e6c21eaab77479d0c2b4fa6042288484 | |
parent | a8901ce63dd302d008459321bd4a8007c7c8f7c7 (diff) | |
download | gitlab-ce-zj-drop-fk-if-exists.tar.gz |
Only remove FK if it existszj-drop-fk-if-exists
-rw-r--r-- | changelogs/unreleased/zj-drop-fk-if-exists.yml | 4 | ||||
-rw-r--r-- | db/migrate/20170425112628_remove_foreigh_key_ci_trigger_schedules.rb | 12 |
2 files changed, 15 insertions, 1 deletions
diff --git a/changelogs/unreleased/zj-drop-fk-if-exists.yml b/changelogs/unreleased/zj-drop-fk-if-exists.yml new file mode 100644 index 00000000000..237ba936de9 --- /dev/null +++ b/changelogs/unreleased/zj-drop-fk-if-exists.yml @@ -0,0 +1,4 @@ +--- +title: Remove foreigh key on ci_trigger_schedules only if it exists +merge_request: +author: diff --git a/db/migrate/20170425112628_remove_foreigh_key_ci_trigger_schedules.rb b/db/migrate/20170425112628_remove_foreigh_key_ci_trigger_schedules.rb index 6116ca59ee4..1587eee06ae 100644 --- a/db/migrate/20170425112628_remove_foreigh_key_ci_trigger_schedules.rb +++ b/db/migrate/20170425112628_remove_foreigh_key_ci_trigger_schedules.rb @@ -4,10 +4,20 @@ class RemoveForeighKeyCiTriggerSchedules < ActiveRecord::Migration DOWNTIME = false def up - remove_foreign_key :ci_trigger_schedules, column: :trigger_id + if fk_on_trigger_schedules? + remove_foreign_key :ci_trigger_schedules, column: :trigger_id + end end def down # no op, the foreign key should not have been here end + + private + + # Not made more generic and lifted to the helpers as Rails 5 will provide + # such an API + def fk_on_trigger_schedules? + connection.foreign_keys(:ci_trigger_schedules).include?("ci_triggers") + end end |