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

Aplikasi Rails di Heroku Tidak Dapat Menulis ke Database PostgreSQL, Hanya Membaca

Ini terdengar seperti masalah transaksi, di mana Anda tidak COMMIT ting transaksi Anda setelah Anda bekerja, sehingga perubahan hilang. Jika driver SQLite Anda default ke COMMIT ting transaksi yang ditutup tanpa COMMIT yang eksplisit atau rollback, dan driver Pg Anda default ke ROLLBACK , Anda akan mendapatkan perilaku yang dijelaskan. Hal yang sama akan terjadi jika default SQLite untuk autocomitting setiap pernyataan secara default, dan driver Pg default untuk membuka transaksi.

Ini adalah salah satu dari banyak alasan bagus untuk menggunakan database lokal yang sama untuk pengujian seperti yang akan Anda terapkan saat Anda ingin melakukan live streaming.

Jika Anda menggunakan instance Pg normal, saya akan memberi tahu Anda untuk mengaktifkan log_statement = 'all' di postgresql.conf , muat ulang Pg, dan lihat lognya. Anda tidak dapat melakukannya di Heroku, tetapi Anda memiliki akses ke log Pg dengan heroku logs --ps postgres . Coba jalankan ALTER USER my_heroku_user SET log_statement = 'all'; , menguji ulang, dan memeriksa log.

Sebagai alternatif, instal Pg secara lokal.

Kemungkinan kecil lainnya yang muncul dalam pikiran:

  • Anda menggunakan transaksi SERIALIZABLE yang sudah berjalan lama untuk pembacaan, sehingga cuplikannya tidak pernah diperbarui. Sangat tidak mungkin.
  • Izin pada objek database menyebabkan INSERT s, UPDATE s, dll gagal, dan aplikasi Anda mengabaikan kesalahan yang dihasilkan. Sekali lagi, tidak mungkin.
  • Anda memiliki DO INSTEAD aturan yang tidak melakukan apa yang Anda harapkan, atau BEFORE pemicu yang mengembalikan NULL , sehingga secara diam-diam mengubah operasi menjadi tanpa operasi. Tampaknya tidak mungkin jika Anda menguji dengan SQLite.
  • Anda menulis ke DB yang berbeda dari tempat Anda membaca. Bukan tidak mungkin dalam pengaturan yang mencoba membaca dari sekelompok siaga panas, dll.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mengatur penyisipan ke file yang dibuat grails dengan nomor urut berikutnya?

  2. Django mengatur ulang bidang pk/id peningkatan otomatis untuk produksi

  3. Klausa UPDATE-FROM di jOOQ memberikan ekspektasi untuk bidang CTE

  4. Masalah pembulatan yang aneh

  5. Bagaimana cara menyimpan tabel data dalam database?