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

Pemilihan skema PostgreSQL runtime dinamis di jOOQ

Tampaknya untuk saat ini, pengaturan search_path adalah sesuatu di luar cakupan jOOQ. Secara teori, kita dapat menggunakan migrasi Java di Jalur Terbang dan memaksa semua referensi dalam suatu fungsi untuk memiliki skema eksplisit, tetapi kedengarannya sangat menyakitkan. Yang membuat kita harus menyetel jalur pencarian secara manual, berpotensi menambahkannya ke manajemen transaksi kita, atau menulis ConnectionProvider yang lebih cerdas.

Kami memiliki model satu permintaan per transaksi yang cukup ketat pada aplikasi kami, jadi sebenarnya tidak ada manajemen transaksi untuk menambahkan kueri "set search_path =..." ke. Solusi ConnectionProvider tampaknya menjadi pilihan terbaik kami.

Kami sudah memiliki implementasi ConnectionProvider khusus untuk penyatuan koneksi, jadi tidak terlalu merepotkan untuk menambahkan logika (diberikan di atas pada akhir pertanyaan) untuk mengatur search_path. Kita dapat membuatnya lebih berperforma dengan mendekorasi Koneksi dengan sesuatu yang mengingat apa yang disetel untuk jalur_pencarian saat ini, dan awalan dengan "setel jalur_pencarian =...;" ke depan pernyataan apa pun sebelum keluar dari pintu jika perlu. Kami sudah melihat dampak kinerja untuk menyetel search_path setiap permintaan, jadi hanya masalah waktu sebelum ini menjadi kebutuhan. Nah, itu atau kembali ke lapisan akses basis data milik kami yang lama.

Paling tidak, saya tidak akan menerima ini sebagai jawaban sampai saya menulis dan membuka sumber pengaturan koneksi pooling/search_path ConnectionProvider, dengan harapan orang lain akan memberikan solusi yang lebih baik sebelum saya menyelesaikannya.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perlu dua indeks pada tabel gabungan HABTM?

  2. SERIAL / peningkatan otomatis khusus per grup nilai

  3. Sisipkan lambat di PostgreSQL menggunakan JDBC

  4. tugas cron untuk menghapus data lama dari postgres di debian

  5. indeks postgresql pada kolom string