2016-05-03 6 views
-1

Ich habe eine Ruby on Rails App und ich möchte es auf Heroku bereitstellen. Einige Fehler erscheinen und ich denke es liegt an der Gerüstbestellung.Ändern Ruby on Rails Gerüste bestellen

Damit meine ich, dass eine Klasse namens Einreichungen zuerst erstellt wird, aber diese Klasse verweist auf eine andere Klasse namens Benutzer, die noch erstellt werden soll.

Dies ist der Fehler, der angezeigt wird, wenn rake db tun: wandern http://pastebin.com/R83a3rsN

Und das sind die Dateien migrieren und deren Dateinamen

ich Ihnen, dass meine erraten:

http://pastebin.com/ig5nHjsj für 20160503205437_create_submissions

und

http://pastebin.com/q2jABiep für 201604281 01834_create_users

+1

Bitte zeigen Sie die Fehler, die Sie erhalten. Dies wird genau erklären, was passiert, so dass es kein Rätselraten gibt. –

+0

Das sind die Fehler, wenn ich rake: db migrate http://pastebin.com/R83a3rsN –

+0

Bitte fügen Sie weitere Informationen in Bezug auf Code oder Sie können Heroku-Protokoll aufnehmen, um in der Lage, Ihren Fehler zu beheben. –

Antwort

0

Dies scheint an sich kein Gerüstfehler zu sein. Es ist eher ein Problem mit Migrationen (welche Gerüste erzeugt haben).

Um das Problem zu beheben, würde ich wahrscheinlich nur eine neue Migration durchführen, die alle Spalten enthält, die Ihre Anwendung zu diesem Zeitpunkt benötigt. Bearbeiten Sie anschließend die Reihenfolge der create_table-Blöcke, um den Fehler zu beheben.

Dann könnten Sie die anderen Migrationsdateien löschen und dB: create oder reset ausführen.

+0

Die Reihenfolge der create_table Blöcke soll in Ordnung sein: http://pastebin.com/BYumTieQ Dies ist Schema .db Ich habe auch eine heroku pg gemacht: reset DATABASE_URL, die funktioniert, aber wenn ich heroku run rake db laufen: migrieren der gleiche Fehler zeigt: http: // pastebin.com/warU3WDE –

+0

Sind Sie sicher, dass Sie das Schema richtig verstehen? Sie sollten Ihr Schema wahrscheinlich löschen, bevor Sie die Datenbank zurücksetzen. Das Schema wird generiert, wenn Sie die Migrationen ausführen. –

2

Sie haben ein Mitglied in Ihrem db/migrieren Ordner mit dem Namen ...

20160424205437_create_submissions.db

umbenennen Nur um

20160503205437_create_submissions.db

dass es das Ende der Liste bewegt von Migrationen und es wird zuletzt ausgeführt werden.

+0

Bereits getan, dass und es weiterhin versagt. In der Tat war create_submissions.db in Wirklichkeit die create_users.db, also war es korrekt. –

0

Dies ist ein Problem mit Querabhängigkeiten in Ihrer Migration. In diesem Fall erwartet die Tabelle Submissions, dass die Tabelle Users bereits existiert, um einen Fremdschlüssel zu deklarieren.

Erwägen Sie, die Tabelle Users über der Tabelle Submissions in Ihrer Migration zu deklarieren.

+0

Das ist schon erledigt und funktioniert nicht. Das ist mein Schema.db, das ist die Datei, von der Sie vermutlich sprechen: pastebin.com/BYumTieQ –

+0

Das Bearbeiten Ihrer schema.db-Datei macht keinen Unterschied. Ihre Migrationen sind nicht in Ordnung, Sie haben sie jedoch definiert. Können Sie in Ihre ursprüngliche Frage den Dateinamen und den Inhalt der Migrationsdatei mit der Tabelle "Benutzer" und die Migrationsdatei mit der Tabelle "Einreichungen" einfügen? Sowohl der Dateiname als auch der Inhalt sind wichtig, um dies zu lösen. –

+0

Ich denke, man das bedeutet: http://pastebin.com/ig5nHjsj für 20160503205437_create_submissions und http://pastebin.com/q2jABiep für 20160428101834_create_users –