diff options
Diffstat (limited to 'db/post_migrate/20170206101030_validate_foreign_keys_on_timelogs.rb')
-rw-r--r-- | db/post_migrate/20170206101030_validate_foreign_keys_on_timelogs.rb | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/db/post_migrate/20170206101030_validate_foreign_keys_on_timelogs.rb b/db/post_migrate/20170206101030_validate_foreign_keys_on_timelogs.rb new file mode 100644 index 00000000000..f397ef919cc --- /dev/null +++ b/db/post_migrate/20170206101030_validate_foreign_keys_on_timelogs.rb @@ -0,0 +1,32 @@ +# See http://doc.gitlab.com/ce/development/migration_style_guide.html +# for more information on how to write migrations for GitLab. + +class ValidateForeignKeysOnTimelogs < ActiveRecord::Migration + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + # When using the methods "add_concurrent_index" or "add_column_with_default" + # you must disable the use of transactions as these methods can not run in an + # existing transaction. When using "add_concurrent_index" make sure that this + # method is the _only_ method called in the migration, any other changes + # should go in a separate migration. This ensures that upon failure _only_ the + # index creation fails and can be retried or reverted easily. + # + # To disable transactions uncomment the following line and remove these + # comments: + disable_ddl_transaction! + + def up + if Gitlab::Database.postgresql? + execute <<-EOF + ALTER TABLE timelogs VALIDATE CONSTRAINT "fk_timelogs_issues_issue_id"; + ALTER TABLE timelogs VALIDATE CONSTRAINT "fk_timelogs_merge_requests_merge_request_id"; + EOF + end + end + + def down + # noop + end +end |