Add missing primary keys to `accounts_tags` and `statuses_tags` (#25210)
parent
a6f0456756
commit
ac0ecfa421
@ -0,0 +1,24 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
class AddPrimaryKeyToAccountsTagsJoinTable < ActiveRecord::Migration[6.1]
|
||||||
|
disable_ddl_transaction!
|
||||||
|
|
||||||
|
def up
|
||||||
|
ActiveRecord::Base.transaction do
|
||||||
|
safety_assured do
|
||||||
|
execute 'ALTER TABLE accounts_tags ADD PRIMARY KEY USING INDEX index_accounts_tags_on_tag_id_and_account_id'
|
||||||
|
|
||||||
|
# Rename for consistency as the primary key's name is not represented in db/schema.rb
|
||||||
|
execute 'ALTER INDEX index_accounts_tags_on_tag_id_and_account_id RENAME TO accounts_tags_pkey'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def down
|
||||||
|
safety_assured do
|
||||||
|
# I have found no way to demote the primary key to an index, instead, re-create the index
|
||||||
|
execute 'CREATE UNIQUE INDEX CONCURRENTLY index_accounts_tags_on_tag_id_and_account_id ON accounts_tags (tag_id, account_id)'
|
||||||
|
execute 'ALTER TABLE accounts_tags DROP CONSTRAINT accounts_tags_pkey'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
@ -0,0 +1,24 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
class AddPrimaryKeyToStatusesTagsJoinTable < ActiveRecord::Migration[6.1]
|
||||||
|
disable_ddl_transaction!
|
||||||
|
|
||||||
|
def up
|
||||||
|
ActiveRecord::Base.transaction do
|
||||||
|
safety_assured do
|
||||||
|
execute 'ALTER TABLE statuses_tags ADD PRIMARY KEY USING INDEX index_statuses_tags_on_tag_id_and_status_id'
|
||||||
|
|
||||||
|
# Rename for consistency as the primary key's name is not represented in db/schema.rb
|
||||||
|
execute 'ALTER INDEX index_statuses_tags_on_tag_id_and_status_id RENAME TO statuses_tags_pkey'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def down
|
||||||
|
safety_assured do
|
||||||
|
# I have found no way to demote the primary key to an index, instead, re-create the index
|
||||||
|
execute 'CREATE UNIQUE INDEX CONCURRENTLY index_statuses_tags_on_tag_id_and_status_id ON statuses_tags (tag_id, status_id)'
|
||||||
|
execute 'ALTER TABLE statuses_tags DROP CONSTRAINT statuses_tags_pkey'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in new issue