2011-07-09 12 views
2

複数のテーブルを1つのレール3の移行で(self.up)作成することは可能ですか?これが可能であれば、そのようなアプローチを使用する上での従来の知恵とは何か。何かは、移行ごとに1つのテーブルを保持する方が良い形になると私に言いますが、私はちょうど私がレール上のいくつかのより多くの味付けルビーをチェックすると思った。1つの移行で複数のテーブルを作成(削除)

ありがとうございました。

+0

GEMを使用しているため、変更するときに関連するすべてのテーブルを削除する必要があります。今までは、一度に1つのテーブルを作成していましたが、テーブルを作成してバッチでドロップすると、多くのことがマスターになりました。 – Mutuelinvestor

答えて

6

移行の全体的な考え方は、バージョン管理のデータベーススキーマを持つことです。だから私は個人的に "機能"ごとに1つの移行を持つことが重要だと思います。たとえば、Pleople(name、prename)のアプリケーションがあり、電話番号を追加する場合は、この変更を移行に追加します。リモートルックアップを実装する電話番号の場合は、キャッシングテーブルが必要な場合があります。私はそれを同じ移行に追加します。

テーブル作成を分割する利点が1つあります。テーブルごとに手動で移動を巻き戻すことができます。