PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Kesalahan dalam evolusi di Heroku

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara mendapatkan teks SQL dari pemicu acara Postgres

  2. Bagaimana to_date() Bekerja di PostgreSQL

  3. Kembali ke readline versi 6.x di Homebrew untuk memperbaiki Postgresql?

  4. Daftar kolom dengan indeks di PostgreSQL

  5. Java Crosstab - kueri pernyataan yang disiapkan