discourse-assign/db/migrate/20211006223156_add_target_t...

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