2013-03-25 23 views
5

上の私は、種が発生したときに、私はランダムにNoMethodError: undefined method 'fields' for nil:NilClassを得るレーキ未定義のメソッド `フィールド:NilClassデータベースシード

rake db:reset 

または

rake db:drop 
rake db:create 
rake db:schema:load 
rake db:seed 

をしようとすると。 は、ここに1つです:

[1m[35m (186.0ms)[0m INSERT INTO "schema_migrations" (version) VALUES ('20130318105449') 
[1m[36m (187.0ms)[0m [1mINSERT INTO "schema_migrations" (version) VALUES ('20130319154146')[0m 
[1m[35m (189.0ms)[0m INSERT INTO "schema_migrations" (version) VALUES ('20130322132730') 
[1m[36m (104.0ms)[0m [1mINSERT INTO "schema_migrations" (version) VALUES ('20130322142814')[0m 
NoMethodError: undefined method `fields' for nil:NilClass:    SELECT COUNT(*) 
      FROM pg_class c 
      LEFT JOIN pg_namespace n ON n.oid = c.relnamespace 
      WHERE c.relkind in ('v','r') 
      AND c.relname = 'schema_migrations' 
      AND n.nspname = ANY (current_schemas(false)) 

ここでは、他の一つだ:

[1m[35m (39.0ms)[0m BEGIN 
[1m[36mCategory Exists (107.0ms)[0m [1mSELECT 1 AS one FROM "categories" WHERE "categories"."hash" = 'cat1' LIMIT 1[0m 
[1m[35mSQL (124.0ms)[0m INSERT INTO "categories" ("category_id", "created_at", "label", "hash", "updated_at") VALUES ($1, $2, $3, $4, $5) RETURNING "id" [["category_id", 58], ["created_at", Mon, 25 Mar 2013 15:07:53 CET +01:00], ["label", "Cat1"], ["hash", "cat1"], ["updated_at", Mon, 25 Mar 2013 15:07:53 CET +01:00]] 
[1m[36m (117.0ms)[0m [1mCOMMIT[0m 
[1m[35m (162.0ms)[0m BEGIN 
[1m[36mCategory Exists (136.0ms)[0m [1mSELECT 1 AS one FROM "categories" WHERE "categories"."hash" = 'cat2' LIMIT 1[0m 
[1m[35mSQL (104.0ms)[0m INSERT INTO "categories" ("created_at", "label", "hash", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["created_at", Mon, 25 Mar 2013 15:07:53 CET +01:00], ["label", "Cat2"], ["hash", "cat2"], ["updated_at", Mon, 25 Mar 2013 15:07:53 CET +01:00]] 
[1m[36m (99.0ms)[0m [1mCOMMIT[0m 
[1m[35m (108.0ms)[0m BEGIN 
[1m[36mCategory Exists (173.0ms)[0m [1mSELECT 1 AS one FROM "categories" WHERE "categories"."hash" = 'cat3' LIMIT 1[0m 
NoMethodError: undefined method `fields' for nil:NilClass: SELECT 1 AS one FROM "categories" WHERE "categories"."hash" = 'cat3' LIMIT 1 

これはから来ることができる場所、私は本当に理解していません。時には私はエラーもなく、すべてが完全に挿入されています。 いくつかのテストをした後、それは挿入の速度に依存するようです。開発サーバーからこれを実行すると、ほとんどの場合成功します。これを私のコンピュータから遠隔で実行すると、ほとんど常に失敗します。

私は自分の開発サーバー上でルビ1.9.3をローカルに、ルビー2を使っています。私はrails4(edge)と私のドライバはどちらもpostgresql(pg、バージョン指定なし)です。

答えて

12

この問題はrails4(edge)とpostgresでも発生しています。私はそれをsolr:reindex上で実行しているので、必ずしも挿入とは関係ないと思います。私は何がうまくいかないのか把握するときにこれを更新します。

編集: レール改訂版1a838ccda4a31bb023985f6c977e6bc3e238cda9に更新してみてください。それが私の問題を解決しました。

これは、その上にgithubの問題です:https://github.com/rails/rails/issues/9710

迅速にgitが二分した後、私はそれを発見しました。間違いなくgitで修正されました。

+0

通常これをコメントに追加します。これがあなたの最初の投稿であることを見て、私はコメントを追加できるようにupvoteします。 Stackoverflowへようこそ! :-D –

+0

ああ、頭のおかげで。エチケットを知ってよかった。 問題が解決するまでは、私のプロジェクトで使用していたのと同じリビジョンで、(1..10000).each {Foobar.first}を使ってテストプロジェクトのバグを再現することができました。 テストプロジェクトを改訂版1a838ccda4a31bb023985f6c977e6bc3e238cda9に更新したところ、問題は解決しました。プロジェクトを同じリビジョンに更新すると、問題は解決されるはずです。 –

+0

本当に!最終更新でこの問題が修正されたようです。 – Crystark

関連する問題