rake db: migrate erzeugt "rake abgebrochen! konnte Tabelle "Fehler nicht finden

8

Ich bin neu bei Rails und baue eine einfache Projektverfolgungs-App für meinen Arbeitgeber. Ich habe die App auf meinem Mac entwickelt und es zu Github geschoben. Ich habe es gerade geschafft, meinen Github-Repo in eine Windows-Box hinter der Firewall meines Unternehmens zu klonen, in der Hoffnung, dass die Kollegen die App ausprobieren können.

Aber wenn ich rake db: migrieren gehe, um die Datenbank auf der Windows-Box zu initialisieren, erhalte ich die folgenden Fehlermeldungen:

%Vor%

Meine Edelsteinliste sieht so aus:

%Vor%

Meine schema.rb-Datei in der Windows-Box sieht folgendermaßen aus:

%Vor%

Da dies das erste Mal ist, dass ich Migrationen auf diesem Computer ausgeführt habe, würde ich erwarten, dass nichts über den Migrationsprozess versuchen sollte, auf die Tabelle "projects" zuzugreifen, bevor sie erstellt wurde. Aber ich bemerke, dass die "projects" -Tabelle nicht in schema.rb aufgeführt wird, bis nach mehreren Tabellen, die damit verknüpft sind (Assets, Makroposts.) Ist das die Ursache des Problems?

Oder ist hier eine Art Problem mit Edelsteinproblemen am Werk? Mir ist aufgefallen, dass das "Faker" -Gemein ganz oben in der Fehlerliste auftaucht, obwohl ich es eigentlich nur in meinen Tests wirklich nutze (kopiert von Michael Hartls RailsTutorial.org).

Danke für jede Hilfe oder Vorschläge, die Sie anbieten können!

Dean Richardson Genlighten.com

    
hikari17 21.09.2010, 15:03
quelle

4 Antworten

13

Ich hatte dieses genaue Problem in den letzten Wochen bei einem Nebenprojekt, an dem ich gearbeitet habe. Die Antwort ist mir erst klar geworden, als ich rake db:migrate mit --trace. gestartet habe. Dort habe ich gemerkt, dass der Stack-Trace sich darüber beschwert hat, dass factory_girl den fehlenden Tabelleneintrag nicht instanziieren konnte.

Ich ging in meine Datei factory.rb und entfernte das problematische Modell und danach konnte ich rake db:migrate ausführen. Außerdem war das Problem für mich:

%Vor%

In diesem Fall versuchte die Fabrik in der Fabrik während der Rake-Aufgabe einzufügen. Da die Tabelle noch nicht existierte, blies sie auf. Mit ein wenig Hilfe fand ich, dass der richtige Weg das ist:

%Vor%     
Chris Hein 17.06.2011 12:52
quelle
5

Ich bin gerade auf dasselbe Problem gestoßen. rake db:create würde funktionieren, aber irgendetwas anderes, wie rake db:schema:load oder rake db:migrate , ist mit einem Fehler über eine fehlende Tabelle fehlgeschlagen. Chris Heins Antwort wies mich in die richtige Richtung. Die fehlende Tabelle wurde in den Spezifikationen referenziert und aus irgendeinem Grund wurden sie als Teil der Umgebung geladen, bevor die Rake-Tasks ausgeführt wurden. Ich habe gerade den Specs-Ordner verschoben, die Rake-Tasks ausgeführt und sie zurückbewegt.

    
redjohn 29.09.2011 04:40
quelle
0

Hatte ein ähnliches Problem und es hatte mit factory_girl zu tun, wie Chris darauf hingewiesen hat. Dieser Weg scheint eine einfachere Lösung zu sein:

Definiere in Gemfile Fabrikmädchen wie folgt:

%Vor%

Dann in spec_helper.rb Datei:

%Vor%

Hier ist der Link zur ursprünglichen Antwort: FactoryGirl verschraubt Rake db: migrate process

    
Biwek 06.10.2014 15:28
quelle
0

möchte vielleicht versuchen, rake db:create auch sicherzustellen, dass Ihre Konfigurationsdateien korrekt sind, wenn Sie auf den gewünschten SQL-Server verweisen.

Stellen Sie außerdem sicher, dass alle Ihre Migrationsdateien gut aussehen und keine Syntaxfehler oder ähnliches aufweisen.

    
Jimmy 21.09.2010 15:06
quelle