25 lines
497 B
Ruby
25 lines
497 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
class FixInvalidEpicSourcingMilestoneIds < ActiveRecord::Migration[5.2]
|
||
|
DOWNTIME = false
|
||
|
|
||
|
def up
|
||
|
nullify_invalid_data(:start_date_sourcing_milestone_id)
|
||
|
nullify_invalid_data(:due_date_sourcing_milestone_id)
|
||
|
end
|
||
|
|
||
|
def down
|
||
|
# no-op
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def nullify_invalid_data(column_name)
|
||
|
execute(<<-SQL.squish)
|
||
|
UPDATE epics
|
||
|
SET #{column_name} = null
|
||
|
WHERE #{column_name} NOT IN (SELECT id FROM milestones);
|
||
|
SQL
|
||
|
end
|
||
|
end
|