Hvis du sender 1.sql
til Heroku fil genereret til H2
, er der stor chance for, at de vil komme i konflikt. Indstil i stedet Heroku's url i application.conf
som db.default.url
og kør det i dev-tilstand på localhost først for at generere gyldig Postres SQL. Du skal også kommentere db.default.user
og db.default.password
indstillinger, da Herokus URL allerede indeholder disse oplysninger.
Hvis du ikke kender den aktuelle forbindelses URL, finder du den på:
https://postgres.heroku.com/ -> YourDBs
-> db-navn -> Connection settings
-> JDBC URL
For at oprette forbindelse fra localhost (eller anden maskine, ikke i Heroku'ens plads), skal du tilføje denne param til URL'en:
&ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory
Takket være denne tilgang kan du teste din applikation lokalt med etableret forbindelse til den eksterne Herokus DB, (bliv ikke overrasket - den kombination vil være meget langsommere end at arbejde med local app + local DB
eller Heroku app + Heroku DB
) alligevel til test er det bedre end gentagne gange at skubbe små rettelser til skyen.
Du vil også være i stand til at udføre udviklinger fra localhost - uden at skubbe koden til Heroku, og det er virkelig kortere tilgang, hvis du har problemer i din SQL.
Derudover er det en god anledning til at slå SQL-logning til i lokal dev-tilstand og jage efter overflødige SQL-forespørgsler, hvis du fjerner alle ikke-nødvendige forespørgsler og vil være tilfreds på localhost, efter installation til Heroku, vil du bare være meget mere tilfreds:)
Nulstil
Hvis du vil oprette korrekt 1.sql
fil, end du sandsynligvis bliver nødt til at nulstille din DB, der indeholder ugyldig struktur (da jeg antager, at det ikke er et problem endnu, da du lige er flyttet fra lokal til Heroku). Find først et navn på DB'en for den aktuelle app (med bash, i appens mappe):
heroku pg
Og nulstil det derefter med (det vil ødelægge alle data, så overvej først backup, hvis du ikke vil miste dine data!):
heroku pg:reset HEROKU_DATABASE_SOMEBASE