Merge pull request #8736 from gschlager/rename_reply_id_column

REFACTOR: Rename `post_replies.reply_id` column to `post_replies.reply_post_id`
This commit is contained in:
Gerhard Schlager
2020-01-17 17:24:49 +01:00
committed by GitHub
parent 3b5a6c9895
commit ab07b945c2
14 changed files with 81 additions and 30 deletions

View File

@ -0,0 +1,18 @@
# frozen_string_literal: true
class RenameReplyIdColumn < ActiveRecord::Migration[6.0]
def up
Migration::ColumnDropper.mark_readonly(:post_replies, :reply_id)
add_column :post_replies, :reply_post_id, :integer
execute <<~SQL
UPDATE post_replies
SET reply_post_id = reply_id
SQL
end
def down
raise ActiveRecord::IrreversibleMigration
end
end

View File

@ -0,0 +1,29 @@
# frozen_string_literal: true
class UpdatePostReplyIndexes < ActiveRecord::Migration[6.0]
# Adding and removing indexes concurrently doesn't work within transaction.
# It also needs existence checks for indexes in case the migration fails and needs to run again.
disable_ddl_transaction!
def up
if !index_exists?(:post_replies, [:post_id, :reply_post_id])
add_index :post_replies, [:post_id, :reply_post_id], unique: true, algorithm: :concurrently
end
if !index_exists?(:post_replies, [:reply_post_id])
add_index :post_replies, [:reply_post_id], algorithm: :concurrently
end
if index_exists?(:post_replies, [:post_id, :reply_id])
remove_index :post_replies, column: [:post_id, :reply_id], algorithm: :concurrently
end
if index_exists?(:post_replies, [:reply_id])
remove_index :post_replies, column: [:reply_id], algorithm: :concurrently
end
end
def down
raise ActiveRecord::IrreversibleMigration
end
end