25 lines
771 B
Ruby
25 lines
771 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, [:target_id, :target_type], unique: true
|
|
add_index :assignments, [: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
|