summaryrefslogtreecommitdiff
path: root/db/migrate/20200123091422_remove_analytics_repository_files_fk_on_other_analytics_tables.rb
diff options
context:
space:
mode:
Diffstat (limited to 'db/migrate/20200123091422_remove_analytics_repository_files_fk_on_other_analytics_tables.rb')
-rw-r--r--db/migrate/20200123091422_remove_analytics_repository_files_fk_on_other_analytics_tables.rb19
1 files changed, 10 insertions, 9 deletions
diff --git a/db/migrate/20200123091422_remove_analytics_repository_files_fk_on_other_analytics_tables.rb b/db/migrate/20200123091422_remove_analytics_repository_files_fk_on_other_analytics_tables.rb
index e3e415dd0ad..a436ad8d529 100644
--- a/db/migrate/20200123091422_remove_analytics_repository_files_fk_on_other_analytics_tables.rb
+++ b/db/migrate/20200123091422_remove_analytics_repository_files_fk_on_other_analytics_tables.rb
@@ -5,20 +5,21 @@ class RemoveAnalyticsRepositoryFilesFkOnOtherAnalyticsTables < ActiveRecord::Mig
DOWNTIME = false
+ disable_ddl_transaction!
+
def up
+ # Requires ExclusiveLock on all tables. analytics_* tables are empty
with_lock_retries do
- # Requires ExclusiveLock on all tables. analytics_* tables are empty
- remove_foreign_key :analytics_repository_file_edits, :analytics_repository_files if table_exists?(:analytics_repository_file_edits) # this table might be already dropped on development environment
- remove_foreign_key :analytics_repository_file_commits, :analytics_repository_files
+ remove_foreign_key_if_exists(:analytics_repository_file_edits, :analytics_repository_files) if table_exists?(:analytics_repository_file_edits) # this table might be already dropped on development environment
end
- end
- def down
with_lock_retries do
- # rubocop:disable Migration/AddConcurrentForeignKey
- add_foreign_key :analytics_repository_file_edits, :analytics_repository_files, on_delete: :cascade
- add_foreign_key :analytics_repository_file_commits, :analytics_repository_files, on_delete: :cascade
- # rubocop:enable Migration/AddConcurrentForeignKey
+ remove_foreign_key_if_exists(:analytics_repository_file_commits, :analytics_repository_files)
end
end
+
+ def down
+ add_concurrent_foreign_key(:analytics_repository_file_edits, :analytics_repository_files, column: :analytics_repository_file_id, on_delete: :cascade)
+ add_concurrent_foreign_key(:analytics_repository_file_commits, :analytics_repository_files, column: :analytics_repository_file_id, on_delete: :cascade)
+ end
end