2020-01-31 15:08:42 +00:00
# frozen_string_literal: true
class RemoveAnalyticsRepositoryFilesFkOnOtherAnalyticsTables < ActiveRecord :: Migration [ 5 . 2 ]
include Gitlab :: Database :: MigrationHelpers
DOWNTIME = false
2020-10-06 09:08:32 +00:00
disable_ddl_transaction!
2020-01-31 15:08:42 +00:00
def up
2020-10-06 09:08:32 +00:00
# Requires ExclusiveLock on all tables. analytics_* tables are empty
2020-01-31 15:08:42 +00:00
with_lock_retries do
2020-10-06 09:08:32 +00:00
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
2020-01-31 15:08:42 +00:00
end
with_lock_retries do
2020-10-06 09:08:32 +00:00
remove_foreign_key_if_exists ( :analytics_repository_file_commits , :analytics_repository_files )
2020-01-31 15:08:42 +00:00
end
end
2020-10-06 09:08:32 +00:00
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
2020-01-31 15:08:42 +00:00
end