ein gemeinsames Konzept für Datenbank-Migrationen ist sie als Teil des Bereitstellungsprozesses zu laufen, die nichts spezifisch für Heroku ist - es die Modernisierung der Infrastruktur ist nur ein Teil ist, wie durch den Anwendungscode erforderlich.
Durch die Ausführung von Migrationen im Rahmen der Bereitstellung wird diese von Ihrem Anwendungscode getrennt, sodass Sie sich keine Gedanken über die Einbindung in Ihre App machen müssen.
Beispiel Einsatz
jede Anfrage bei der Bereitstellung akzeptiert Um zu vermeiden, es mit der Aktivierung des App-Wartungsmodus zu beginnen empfohlen wird.
heroku maintenance:on --app myapp
# push to Heroku which will trigger the buildpack to run
git push [email protected]:myapp.git master
# Use migration tool of your choice, this example is using migrate
# https://github.com/mattes/migrate which supports a number of
# different database systems. Make sure to use the DATABASE_URL that
# is set in your application's environment variables.
migrate -database $(heroku config:get DATABASE_URL --app myapp) \
-path ./migrations up
heroku maintenance:off --app myapp
Hinweis: das obige Beispiel enthält keine Fehlerbehandlung, zum Beispiel, wie die Bereitstellung Heroku vorgehen, wenn nicht, oder wie von einer ausgefallenen Datenbankmigration zu erholen. Darüber hinaus empfiehlt es sich, vor dem Start der Migration einen Datenbank-Snapshot/eine Datenbanksicherung zu erstellen.
Ich habe migrate in das Beispiel aufgenommen, da es mit Unterstützung für PostgreSQL, MySQL, SQLite und eine Reihe anderer Datenbanken kommt. Aber jedes Migrationstool reicht je nach Ihren Anforderungen.
Link zum Beispiel Java Heroku App, bitte. –