PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Fehler in Entwicklungen auf Heroku

Wenn Sie an Heroku 1.sql senden Datei, die für H2 generiert wurde , besteht eine große Wahrscheinlichkeit, dass es zu Konflikten kommt. Legen Sie stattdessen die Heroku-URL in application.conf fest als db.default.url und führen Sie es zuerst im Entwicklungsmodus auf localhost aus, um gültiges Postres-SQL zu generieren. Außerdem müssen Sie db.default.user auskommentieren und db.default.password Einstellungen, da die URL von Heroku diese Informationen bereits enthält.

Wenn Sie die URL der aktuellen Verbindung nicht kennen, finden Sie sie unter:

https://postgres.heroku.com/ -> YourDBs -> db-name -> Connection settings -> JDBC URL

Um eine Verbindung von localhost (oder einer anderen Maschine, die sich nicht im Bereich von Heroku befindet) herzustellen, müssen Sie diesen Parameter zur URL hinzufügen:

&ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory

Dank dieses Ansatzes können Sie Ihre Anwendung lokal mit einer bestehenden Verbindung zur entfernten Datenbank von Heroku testen (seien Sie nicht überrascht – diese Kombination ist viel langsamer als die Arbeit mit local app + local DB). oder Heroku app + Heroku DB ) zum Testen ist es jedenfalls besser, als wiederholt kleine Korrekturen in die Cloud zu schieben.

Außerdem werden Sie in der Lage sein, Evolutionen von localhost durchzuführen – ohne den Code zu Heroku zu pushen, und es ist wirklich ein kürzerer Ansatz, wenn Sie Probleme in Ihrem SQL haben.

Darüber hinaus ist es eine gute Gelegenheit, die SQL-Protokollierung im lokalen Entwicklungsmodus zu aktivieren und nach redundanten SQL-Abfragen zu suchen. Wenn Sie alle nicht erforderlichen Abfragen entfernen und auf localhost zufrieden sind, werden Sie nach der Bereitstellung auf Heroku viel zufriedener sein:)

Zurücksetzen

Wenn Sie die richtige 1.sql erstellen Datei, dann müssen Sie höchstwahrscheinlich Ihre Datenbank zurücksetzen, die eine ungültige Struktur enthält (da ich annehme, dass dies noch kein Problem ist, da Sie gerade von lokal zu Heroku wechseln). Finden Sie zuerst einen Namen der DB für die aktuelle App (mit bash, im Ordner der App):

heroku pg

Und setzen Sie es dann mit zurück (es wird alle Daten zerstören, ziehen Sie also zuerst eine Sicherung in Betracht, wenn Sie Ihre Daten nicht verlieren wollen!):

heroku pg:reset HEROKU_DATABASE_SOMEBASE