3

2つの移行があり、最初の移行で列が追加され、2番目の移行でその列に値が挿入された場合でもreset_column_information、最初の移行の最後に手動で呼び出す必要がありますか?

または質問を言い換えると、reset_column_information移行のたびに自動的に呼び出されますか?


私はRails3.2.3を使用しており、reset_column_information移行のたびに呼び出しが行われていたと思います。ただし、最近、新しく作成した列に値を挿入すると、一部の値が欠落していることがわかりました。2つの移行は、1つのレーキタスク中に実行されます。これはバグだと思いますが、少し説明が必要です。


アップデート:

この問題を示すデモアプリを作成しました:https ://github.com/lulalala/migration-bug 。readmeは、それを準備して複製する手順を示しています。おそらくバグだと思い、ファイルしました。

4

2 に答える 2

4

Rails issues からのこのコメントによると、Rails 3.2.6 は実行するたびにデータベース スキームの新しいコピーしか取得しませんrake db:migrate。そのため、一度に 1 つの移行を実行すると、一部の新しい列が更新されないという問題を回避するのに役立つ場合があります。

于 2012-07-06T04:18:20.253 に答える
2

移行で「reset_column_information」を自分で呼び出す必要があります。これは、「同じ移行」で列を追加し、その後すぐに入力した場合のみです。詳細については、 Rails ガイドを参照してください。

于 2012-06-29T17:30:26.730 に答える