2 つの移行の間に新しい移行を導入せざるを得ない小さな問題があります。私の質問の短いバージョンは、前の 2 つの間に新しい移行を導入しても安全かどうかです。
私がしたこと
ファイルから入力されるテーブルが必要です。テーブルを追加し、2 つの移行によってテーブルにデータをインポートしました。
- を使用して名前付き ID 列を持つテーブルを作成する移行
self.primary_key = some_id
- テーブルにテキスト データをインポートするための移行
:id => false
問題は、最初の移行に追加するのを忘れていたことです。これにより、id
列が作成されますが、正しく設定されていません。私は主キーを持っているのでsome_id
、今のところ問題はありません。
レール 3.2.4
さて、Rails 3.2.4 にアップグレードしました。id
変更により、保存する前に一意に設定する必要があるようです。上記の移行 2 が失敗する原因となります。
最も簡単な修正はid
、上記の 2 つの移行の間に列を削除することです。これは、データベースを最初から構築するためのテスト スイートが必要になる場合があるためです。インポートを機能させるには、2 回目の移行を実行する前に修正する必要があります。
質問
今質問です。
上記の移行は既に展開されているため、移行は、1 つ以外のすべての移行の後に実行されます。
私の場合、そのような移行を作成しても問題ないようです (上の 2 つの間のタイムスタンプを使用)。
この場合、このように移行を追加しても問題ありませんか?