Jika Anda mengirim ke Heroku 1.sql
file yang dihasilkan untuk H2
, kemungkinan besar mereka akan bentrok, sebagai gantinya, setel url Heroku di application.conf
sebagai db.default.url
dan jalankan dalam mode dev di localhost terlebih dahulu untuk menghasilkan Postres SQL yang valid. Anda juga perlu mengomentari db.default.user
dan db.default.password
pengaturan, karena URL Heroku sudah berisi informasi ini.
Jika Anda tidak mengetahui URL koneksi saat ini, Anda dapat menemukannya di:
https://postgres.heroku.com/ -> YourDBs
-> nama-db -> Connection settings
-> JDBC URL
Untuk terhubung dari localhost (atau mesin lain, bukan di ruang Heroku), Anda perlu menambahkan param ini ke URL:
&ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory
Berkat pendekatan ini, Anda dapat menguji aplikasi Anda secara lokal dengan koneksi yang dibuat ke DB Heroku jarak jauh, (jangan kaget - kombinasi itu akan jauh lebih lambat daripada bekerja dengan local app + local DB
atau Heroku app + Heroku DB
) tetap untuk mengujinya lebih baik daripada berulang kali mendorong perbaikan kecil ke cloud.
Anda juga akan dapat melakukan evolusi dari localhost - tanpa memasukkan kode ke Heroku, dan pendekatan ini benar-benar lebih pendek jika Anda memiliki masalah dalam SQL Anda.
Selain itu, ini adalah kesempatan yang baik untuk mengaktifkan SQL logging dalam mode dev lokal dan mencari kueri SQL yang berlebihan, jika Anda akan menghapus semua kueri yang tidak diperlukan dan akan puas dengan localhost, setelah menerapkan ke Heroku, Anda akan jauh lebih puas:)
Setel Ulang
Jika Anda akan membuat 1.sql
yang tepat file daripada kemungkinan besar Anda harus mengatur ulang DB Anda yang berisi struktur yang tidak valid (karena saya berasumsi itu belum menjadi masalah karena Anda baru saja pindah dari lokal ke Heroku). Pertama-tama temukan nama DB untuk aplikasi saat ini (dengan bash, di folder aplikasi):
heroku pg
Dan kemudian reset dengan (itu akan menghancurkan semua data jadi pertimbangkan untuk membuat cadangan terlebih dahulu jika Anda tidak ingin kehilangan data Anda!):
heroku pg:reset HEROKU_DATABASE_SOMEBASE