Om du skickar 1.sql
till Heroku fil genererad för H2
, det finns stor chans att de kommer i konflikt, istället ställ in Herokus url i application.conf
som db.default.url
och kör den i dev-läge på localhost först för att generera giltig Postres SQL. Du måste också kommentera db.default.user
och db.default.password
inställningar, eftersom Herokus URL redan innehåller denna information.
Om du inte känner till den aktuella anslutningens URL hittar du den på:
https://postgres.heroku.com/ -> YourDBs
-> db-namn -> Connection settings
-> JDBC URL
För att ansluta från localhost (eller annan maskin, inte i Herokus utrymme) måste du lägga till denna param till URL:en:
&ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory
Tack vare detta tillvägagångssätt kan du testa din applikation lokalt med etablerad anslutning till fjärrkontrollen Herokus DB, (bli inte förvånad - den kombinationen kommer att vara mycket långsammare än att arbeta med local app + local DB
eller Heroku app + Heroku DB
) hur som helst för att testa är det bättre än att upprepade gånger skjuta små fixar till molnet.
Du kommer också att kunna utföra utvecklingar från localhost - utan att skicka koden till Heroku, och det är verkligen kortare tillvägagångssätt om du har problem i din SQL.
Dessutom är det ett bra tillfälle att aktivera SQL-loggning i lokalt utvecklarläge och leta efter redundanta SQL-frågor, om du tar bort alla oönskade frågor och kommer att vara nöjd på localhost, efter att ha distribuerat till Heroku, kommer du att vara mycket mer nöjd:)
Återställ
Om du skapar korrekt 1.sql
fil än du förmodligen kommer att behöva återställa din DB som innehåller ogiltig struktur (eftersom jag antar att det inte är ett problem ännu eftersom du just har flyttat från lokal till Heroku). Hitta först ett namn på DB för den aktuella appen (med bash, i appens mapp):
heroku pg
Och sedan återställ den med (det kommer att förstöra all data så överväg säkerhetskopiering först om du inte vill tappa dina data!):
heroku pg:reset HEROKU_DATABASE_SOMEBASE