に実行されません。 は、その後、私は私の生産ENVでそれを実行しましたが、これは失敗します。Railsの移行は、私はレールの移行で一部のデータを変換していますPROD
[email protected]:~/pt_api $ RAILS_ENV="production" rake db:migrate
I, [2017-09-04T07:11:51.315838 #29058] INFO -- : Migrating to MigrateInstancesToFacets (20170831110928)
== 20170831110928 MigrateInstancesToFacets: migrating =========================
-- Found 25671 records to migrate
-- Migrating instances...
rake aborted!
StandardError: An error has occurred, all later migrations canceled:
uninitialized constant Instance::Catalog
/home/pi/pt_api/db/migrate/20170831110928_migrate_instances_to_facets.rb:9:in `block (2 levels) in change'
/home/pi/pt_api/db/migrate/20170831110928_migrate_instances_to_facets.rb:8:in `block in change'
/home/pi/pt_api/db/migrate/20170831110928_migrate_instances_to_facets.rb:5:in `change'
NameError: uninitialized constant Instance::Catalog
/home/pi/pt_api/db/migrate/20170831110928_migrate_instances_to_facets.rb:9:in `block (2 levels) in change'
/home/pi/pt_api/db/migrate/20170831110928_migrate_instances_to_facets.rb:8:in `block in change'
/home/pi/pt_api/db/migrate/20170831110928_migrate_instances_to_facets.rb:5:in `change'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)
それはインスタンス上のカタログにアクセスすることができないと言っています。私はコンソールを開き、そこに同じコードを実行して、それはすべて良いです。 マイグレーション中に環境をロードしていませんか?
--- EDIT --- インスタンスモデル:
class Instance < ActiveRecord::Base
belongs_to :catalog
belongs_to :photo
before_destroy :delete_photo
def delete_photo
catalog = Catalog.find self.catalog_id
catalog.delete_photo(self.photo_id)
end
end
でそれを作成するために、あなたの移行コードの更新を試すことができているようinstenceを渡しますバンドルexec rake db:migrateを使って試してみましたか? –
提案をお寄せいただきありがとうございます。残念ながら、何も変更されていませんでした。 – martin
大きな問題の1つは、 '.create'を実行していて、戻り値をチェックしてレコードが保存されたかどうかを確認することではありません。 – max