Se stai inviando a Heroku 1.sql
file generato per H2
, c'è una grande possibilità che siano in conflitto, invece, imposta l'URL di Heroku in application.conf
come db.default.url
ed eseguilo prima in modalità dev su localhost per generare un SQL Postres valido. Inoltre dovrai commentare il db.default.user
e db.default.password
impostazioni, poiché l'URL di Heroku contiene già queste informazioni.
Se non conosci l'URL della connessione corrente, lo troverai su:
https://postgres.heroku.com/ -> YourDBs
-> nome-db -> Connection settings
-> JDBC URL
Per connetterti da localhost (o altro computer, non nello spazio di Heroku) devi aggiungere questo parametro all'URL:
&ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory
Grazie a questo approccio puoi testare la tua applicazione localmente con una connessione stabilita al DB di Heroku remoto, (non sorprenderti:questa combinazione sarà molto più lenta che lavorare con local app + local DB
o Heroku app + Heroku DB
) comunque per il test è meglio che inviare ripetutamente piccole correzioni al cloud.
Inoltre sarai in grado di eseguire evoluzioni da localhost, senza inviare il codice a Heroku, ed è un approccio davvero più breve se hai problemi nel tuo SQL.
Inoltre è una buona occasione per attivare la registrazione SQL in modalità di sviluppo locale e cercare query SQL ridondanti, se rimuoverai tutte le query non necessarie e sarai soddisfatto su localhost, dopo la distribuzione su Heroku, sarai molto più soddisfatto:)
Ripristina
Se creerai 1.sql
corretto file di quanto probabilmente dovrai reimpostare il tuo DB contenente una struttura non valida (poiché presumo che non sia ancora un problema poiché ti stai spostando da locale a Heroku). Per prima cosa trova un nome del DB per l'app corrente (con bash, nella cartella dell'app):
heroku pg
E poi ripristinalo con (distruggerà tutti i dati, quindi considera prima il backup se non vuoi perdere i tuoi dati!):
heroku pg:reset HEROKU_DATABASE_SOMEBASE