/db/post_migrate/20170206101030_validate_foreign_keys_on_timelogs.rb
https://gitlab.com/visay/gitlab-ce · Ruby · 32 lines · 15 code · 5 blank · 12 comment · 1 complexity · 02e89b36d5352e6ef76dec6201ed079d MD5 · raw file
- # 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