2013-03-25 14 views
5

Kiedy próbuję zrobićnatarcia metoda niezdefiniowane pola `do zera: NilClass nasiona bazy

rake db:reset 

lub

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

ja przypadkowo dostać NoMethodError: undefined method 'fields' for nil:NilClass gdy wystąpi nasienie. Oto jeden:

[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)) 

Oto druga:

[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 

I naprawdę nie rozumiem, gdzie można to pochodzi. Czasem nie mam nawet błędu i wszystko jest idealnie włożone. Po wykonaniu niektórych testów wydaje się, że zależy to od szybkości wstawiania. Jeśli wykonam to z mojego serwera programistycznego, prawie zawsze się uda. Jeśli wykonam to zdalnie z mojego komputera, prawie zawsze zawiedzie.

Używam Ruby 1.9.3 lokalnie i Ruby 2 na moim serwerze programistycznym. Na obu używam rails4 (krawędzi) i mój sterownik jest postgresql (pg, nie określono wersji)

Odpowiedz

12

Mam ten problem, jak również na szynach 4 (krawędzi) i postgres. Wpadam na to na solr: reindex, więc nie sądzę, żeby było to w jakikolwiek sposób związane z wstawkami. Zaktualizuję to, gdy zorientuję się, co jest nie tak.

Edytuj: Spróbuj zaktualizować do wersji kolejowej wersji 1a838ccda4a31bb023985f6c977e6bc3e238cda9, to rozwiązało mój problem.

Jest to kwestia github na nim: https://github.com/rails/rails/issues/9710

Znalazłem go po szybkie git przepoławiać. Naprawdę jest teraz naprawiony w git.

+0

Zazwyczaj dodaje się to jako komentarz. Widząc to jest twój pierwszy post, zrobię to, żebyś mógł dodawać komentarze. Witamy w Stackoverflow! :-D –

+0

Ah, dzięki za głowy. Miło poznać etykietę. Co do wydania, udało mi się odtworzyć błąd w projekcie testowym za pomocą (1..10000) .each {Foobar.first}, w tej samej wersji, z której korzystał mój projekt. Zaktualizowałem mój test-projekt do wersji 1a838ccda4a31bb023985f6c977e6bc3e238cda9 i problem zniknął. Jestem przekonany, że gdy raz zaktualizuję swój projekt do tej samej wersji, problem powinien zostać naprawiony. –

+0

Rzeczywiście! Wydaje się, że ostatnia aktualizacja rozwiązała ten problem. – Crystark

Powiązane problemy