Pokud posíláte do Heroku 1.sql
soubor vygenerovaný pro H2
, existuje velká šance, že budou v konfliktu, místo toho nastavte adresu URL Heroku v application.conf
jako db.default.url
a nejprve jej spusťte v režimu dev na localhost, aby se vygeneroval platný Postres SQL. Také budete muset zakomentovat db.default.user
a db.default.password
nastavení, protože adresa URL Heroku již tyto informace obsahuje.
Pokud neznáte adresu URL aktuálního připojení, najdete ji na:
https://postgres.heroku.com/ -> YourDBs
-> název databáze -> Connection settings
-> JDBC URL
Chcete-li se připojit z localhost (nebo jiného počítače, nikoli v prostoru Heroku), musíte do adresy URL přidat tento parametr:
&ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory
Díky tomuto přístupu můžete svou aplikaci testovat lokálně s navázaným připojením ke vzdálené Heroku's DB, (nedivte se - tato kombinace bude mnohem pomalejší než práce s local app + local DB
nebo Heroku app + Heroku DB
) každopádně pro testování je to lepší, než opakovaně tlačit malé opravy do cloudu.
Také budete moci provádět evoluce z localhostu – bez vkládání kódu do Heroku a je to opravdu kratší přístup, pokud máte problémy s SQL.
Navíc je to dobrá příležitost zapnout protokolování SQL v místním dev režimu a pátrat po nadbytečných SQL dotazech, pokud odstraníte všechny nepotřebné dotazy a budete spokojeni na localhostu, po nasazení na Heroku budete prostě mnohem spokojenější:)
Resetovat
Pokud vytvoříte správný 1.sql
než s největší pravděpodobností budete muset resetovat svou DB obsahující neplatnou strukturu (předpokládám, že to zatím není problém, protože právě přecházíte z místního na Heroku). Nejprve najděte název DB pro aktuální aplikaci (s bash, ve složce aplikace):
heroku pg
A poté jej resetujte pomocí (zničí všechna data, takže pokud nechcete o svá data přijít, zvažte nejprve zálohu!):
heroku pg:reset HEROKU_DATABASE_SOMEBASE