2012-03-28 13 views
1

Beim Import oder Datenbanken unter Verwendung von Taps in Heroku exportiert, ist es notwendig, dass wir Heroku läuft rake db ausführen müssen: Migration Befehl, was ist der Unterschied zwischen Heroku Push und Heroku migrieren? Kann mir das irgendwer klar machen? Danke. . .Import und Export von Datenbank

Antwort

1

Die Heroku docs auf diese sind ziemlich gut https://devcenter.heroku.com/articles/taps

aber ich, dass es nicht ganz klar sehen kann, ob Sie die Migration ausführen müssen. Sie sind im Wesentlichen der lokalen Datenbank zu nehmen und es nach oben als vollwertiger Ersatz drücken, und es werden die Tabellen und füllen Sie sie, so läuft die Migration gegen Heroku ist nicht notwendig, erstellen.

Ich half jemandem, ihre App Minuten vor einer großen Demo zu starten, und wir hatten Probleme, wo die Migration auf Heroku fehlschlug (Code/Abhängigkeiten seinerseits), so dass db: push uns die db holen ließ Struktur und lokale Daten rechtzeitig für die Demo.

Probieren Sie es aus

+0

Hinweis das funktioniert nicht auf Multi-Schema-Datenbanken. Es scheint, dass es nur die Öffentlichkeit braucht. – baash05

0

push ist ein Befehl Git. Jede Heroku-App ist ein Git-Repository, und wenn Sie von Ihrem lokalen Repository aus auf diese zugreifen, wird die Bereitstellung ausgelöst.

db:migrate ist ein Rake Aufgabe. Rails verwendet Rake, um allgemeine Aufgaben zur Verwaltung einer Rails-App zu vereinfachen. Das hat nichts mit Git zu tun oder zu Heroku zu schieben. Wenn Sie heroku run [something] laufen, Ihre Heroku App startet einen einmaligen Vorgang, den Befehl auszuführen. In diesem Fall ist es Rake. db:migrate ist die Rake-Task zum Ausführen Ihrer Rails-Migrationen, um Ihr Datenbankschema zu aktualisieren.

Ob Sie laufen Sie Migrationen vor dem Import oder Export Ihrer Datenbank bis zu Ihnen und hängt davon ab, ob Sie Migrationen haben, die angewendet werden müssen.