28 lines
807 B
Ruby
28 lines
807 B
Ruby
# frozen_string_literal: true
|
|
|
|
class AddTargetToAssignments < ActiveRecord::Migration[6.1]
|
|
def up
|
|
add_column :assignments, :target_id, :integer
|
|
add_column :assignments, :target_type, :string
|
|
|
|
execute <<~SQL
|
|
UPDATE assignments
|
|
SET target_type = 'Topic', target_id = topic_id
|
|
WHERE target_type IS NULL
|
|
SQL
|
|
|
|
change_column :assignments, :target_id, :integer, null: false
|
|
change_column :assignments, :target_type, :string, null: false
|
|
|
|
add_index :assignments, %i[target_id target_type], unique: true
|
|
add_index :assignments,
|
|
%i[assigned_to_id assigned_to_type target_id target_type],
|
|
unique: true,
|
|
name: "unique_target_and_assigned"
|
|
end
|
|
|
|
def down
|
|
remove_columns :assignments, :target_id, :target_type
|
|
end
|
|
end
|