危険なDDLと安全なDDLの比較。通常のadd_indexはテーブル全体をロックしてサイトが固まるが、algorithm: :concurrentlyとdisable_ddl_transaction!を使えば書き込みを止めずにインデックスを作成できる。strong_migrationsが危険な書き方をデプロイ前に検知して停止する。

マイグレーションを流したら本番サイトが固まった——そんなヒヤリとした経験はありませんか? ローカルでは一瞬で終わったadd_columnやadd_indexが、行数の多い本番テーブルではテーブル全体をロックし、その間クエ…

続きを読む