1

私の Rails アプリでは、もともと というテーブルitemsを作成していましたが、それは削除され、 という別のテーブルに置き換えられましたproductsitemsテーブルには、シリアル番号フィールドを変更する古い移行 (削除した移行の前に明らかに作成されたもの) がありますが、実行するとこの移行は失敗しますheroku run rake db:migrate:

=  ChangeSerialNumberToString: migrating =====================================
-- change_column(:items, :serial_number, :text)
rake aborted!
An error has occurred, this and all later migrations canceled:

PG::Error: ERROR:  relation "items" does not exist
: ALTER TABLE "items" ALTER COLUMN "serial_number"

削除されたテーブルで移行を実行しようとしているようですが、テーブルがもう存在しないため、明らかに失敗しています。

私のローカル サーバーでrake db:migrateは問題なく動作rake db:migrate RAILS_ENV=productionしますが、次のエラーが発生します。

==  ChangeSerialNumberToString: migrating =====================================
-- change_column(:items, :serial_number, :text)
rake aborted!
An error has occurred, this and all later migrations canceled:

Could not find table 'items'

何か案は?ありがとう!

4

1 に答える 1

1

db/migrate ディレクトリから移行を削除ChangeSerialNumberToStringし、変更を heroku にコミットしてから、移行を実行します。

于 2013-06-03T21:46:48.123 に答える