5

私がやろうとすると

rake db:reset

また

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

NoMethodError: undefined method 'fields' for nil:NilClassシードが発生するとランダムに取得します。これが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))

これがもう1つです。

[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

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

ローカルでruby1.9.3を使用し、開発サーバーでruby2を使用しています。両方でrails4(エッジ)を使用していて、ドライバーはpostgresql(pg、バージョン指定なし)です

4

1 に答える 1

12

rails4(エッジ)とpostgresでもこの問題が発生しています。私はsolr:reindexでそれに遭遇しているので、必ずしも挿入に関連しているとは思いません。何が悪いのかがわかったら、これを更新します。

編集:Railsリビジョン1a838ccda4a31bb023985f6c977e6bc3e238cda9に更新してみてください、それは私の問題を解決しました。

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

簡単なgitバイセクトの後で見つけました。今では間違いなくgitで修正されています。

于 2013-03-25T21:29:09.633 に答える