猫の魔法

主にruby系の技術メモを記載

個人的メモ:Rails AntiPatterns(18)

Chapter 9 Databases

  • railsはORMマッパーによって、DBの事を意識せずに済むように設計されているが、それでも気にしなければいけない点はある

AntiPattern: Messy Migrations

  • railsはmigrationによってDBへ直接変更を加えなくてもよくなっているが、時間が立つとこのmigration機能自体が厄介な問題を引き起こす可能性がある。

Solution: Never Modify the up Method on a Committed Migration

  • migrationはリモート環境で実行したら絶対に変更してはならない。
  • すでに配布されているmigrationスクリプトを変更すると、他の開発者とのバッティングを起こすだけでなく、DB自体の破壊につながる。
  • そのような自体にならないように、ローカルでよくmigrationを検証する必要がある。
  • その為にはdb:migrationだけでなく、db:migration:redoも実施し、問題が無いかを確認したほうが良い。
  • db:migration:redoはdownメソッドを実行した後にもう一度migrationを適用する
    • ★ネットで調べると、rollbackの代わりに使ってるみたいだが、本当にmigrationを再適用してるのか不明。あとで試す。
    • ★これの意図は一度downしてからもう一度upさせることで、双方のスクリプト正しく動くかをローカルdr確認できて安心という意図っぽい。

Solution: Never Use External Code in a Migrationの手前まで読了

関連