/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

  1. # See http://doc.gitlab.com/ce/development/migration_style_guide.html
  2. # for more information on how to write migrations for GitLab.
  3. class ValidateForeignKeysOnTimelogs < ActiveRecord::Migration
  4. include Gitlab::Database::MigrationHelpers
  5. DOWNTIME = false
  6. # When using the methods "add_concurrent_index" or "add_column_with_default"
  7. # you must disable the use of transactions as these methods can not run in an
  8. # existing transaction. When using "add_concurrent_index" make sure that this
  9. # method is the _only_ method called in the migration, any other changes
  10. # should go in a separate migration. This ensures that upon failure _only_ the
  11. # index creation fails and can be retried or reverted easily.
  12. #
  13. # To disable transactions uncomment the following line and remove these
  14. # comments:
  15. disable_ddl_transaction!
  16. def up
  17. if Gitlab::Database.postgresql?
  18. execute <<-EOF
  19. ALTER TABLE timelogs VALIDATE CONSTRAINT "fk_timelogs_issues_issue_id";
  20. ALTER TABLE timelogs VALIDATE CONSTRAINT "fk_timelogs_merge_requests_merge_request_id";
  21. EOF
  22. end
  23. end
  24. def down
  25. # noop
  26. end
  27. end