0

次のスキーマを持つデータベースがあります。

[ Region ] 1 --- * [ District ] 1 --- * [ Location ]

次のように、中央のテーブルを 2 つのテーブルに分割したいと思います。

[ Region ] 1 --- * [ District ] 1 --- * [ Area ] 1 --- * [ Location ]

...一部のフィールド (およびその値) を元の District テーブルに残し、他の列 (およびそれらの値) を新しく作成された Area テーブルに転送します。

Railsの移行でこれを行う標準/クリーンな方法はありますか(生のSQLを使用しないことが望ましい)?

4

1 に答える 1

3

2 つのステップでこれを行うことができます。

最初の一歩

Areaテーブルとその列を作成する移行を作成します。この移行では、いくつかの Ruby コードを記述して、テーブルにDistrictからのデータを入力します。

第二段階

Districtテーブルを変更する移行(たとえば、District から不要な列を削除する移行) を記述します。

この時点で移行を実行すると、SQL を使用しなくても必要なものが得られるはずです。

それが役に立てば幸い !: )

于 2013-05-16T23:35:38.907 に答える