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

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