gitlab-org--gitlab-foss/db/post_migrate/20211012155931_remove_sched...

30 lines
1.1 KiB
Ruby

# frozen_string_literal: true
class RemoveScheduleAndStatusFromPendingAlertEscalations < Gitlab::Database::Migration[1.0]
include Gitlab::Database::PartitioningMigrationHelpers
disable_ddl_transaction!
ESCALATIONS_TABLE = :incident_management_pending_alert_escalations
SCHEDULES_TABLE = :incident_management_oncall_schedules
INDEX_NAME = 'index_incident_management_pending_alert_escalations_on_schedule'
CONSTRAINT_NAME = 'fk_rails_fcbfd9338b'
def up
with_lock_retries do
remove_column ESCALATIONS_TABLE, :schedule_id
remove_column ESCALATIONS_TABLE, :status
end
end
def down
with_lock_retries do
add_column ESCALATIONS_TABLE, :schedule_id, :bigint unless column_exists?(ESCALATIONS_TABLE, :schedule_id)
add_column ESCALATIONS_TABLE, :status, :smallint unless column_exists?(ESCALATIONS_TABLE, :status)
end
add_concurrent_partitioned_index ESCALATIONS_TABLE, :schedule_id, name: INDEX_NAME
add_concurrent_partitioned_foreign_key ESCALATIONS_TABLE, SCHEDULES_TABLE, column: :schedule_id, name: CONSTRAINT_NAME
end
end