|
|
|
@@ -1,7 +1,27 @@ |
|
|
|
class AddUniqueIndexToTagImplications < ActiveRecord::Migration[8.0] |
|
|
|
def change |
|
|
|
def up |
|
|
|
execute <<~SQL |
|
|
|
DELETE |
|
|
|
ti1 |
|
|
|
FROM |
|
|
|
tag_implications ti1 |
|
|
|
INNER JOIN |
|
|
|
tag_implications ti2 |
|
|
|
ON |
|
|
|
ti1.tag_id = ti2.tag_id |
|
|
|
AND ti1.parent_tag_id = ti2.parent_tag_id |
|
|
|
AND ti1.id > ti2.id |
|
|
|
; |
|
|
|
SQL |
|
|
|
|
|
|
|
add_index :tag_implications, [:tag_id, :parent_tag_id], |
|
|
|
unique: true, |
|
|
|
name: 'index_tag_implications_on_tag_id_and_parent_tag_id' |
|
|
|
end |
|
|
|
|
|
|
|
def down |
|
|
|
# NOTE: 重複削除は復元されなぃ. |
|
|
|
remove_index :tag_implications, |
|
|
|
name: 'index_tag_implications_on_tag_id_and_parent_tag_id' |
|
|
|
end |
|
|
|
end |