#17 あるところにオンラインで仕事ができるサイトがあったとしてですね。
ユーザ間でメッセージをやり取りできる機能。みたいのを作ったとしましょう。
User と Message の間に中間テーブルがあって、 Rails 的には has many through でやり取りできそうな、そんな感じの設計ですよね。
#42 例えば、こんなマイグレーションならこんなクエリだな、みたいのを事前に見ておく心理的安全性の向上に寄与します。
具体的にどう言うマイグレーションか忘れたんですが、rename したかっただけなのに、drop index が走り、 create index が
走る、みたいな夢を見た記憶があります。
#43 これは直近2年で2回ほど、「メンテナス時間内に終わりませんでした」みたいなことをやらかした上での教訓なんですけど、
特に RDS とか使っているなら、スナップショットからインスタンスを復元して、クエリの実行時間を計ってみるとか
やっておくと便利です。
特に mysql の alter table はたいていの場合、新スキーマの一時テーブルを作り、データの移行が終わってから旧テーブルとの入れ替える
みたいな挙動をするのですが、リハーサルをやると、alter 中にストレージを使い切って死ぬとかわかって便利です。
僕はそれで1回、ボスから怒られました。