Bagaimana saya bisa mencapai perilaku pemeriksaan Postgres yang sama di Linux seperti di Mac OS?

Saat beralih antara Mac OS (pengembangan) ke Linux (server produksi), pemeriksaan untuk Postgres berubah karena pemeriksaan di Postgres bergantung pada konfigurasi sistem operasi yang mendasarinya.

Bagaimana saya bisa mencapai perilaku pemeriksaan Postgres yang sama di Linux seperti yang saya miliki di Mac OS?

Saya menjalankan Postgres 9.2


person BestPractices    schedule 02.05.2013    source sumber
comment
Apakah hanya saya atau merupakan kesalahan besar bagi Postgres untuk tidak mengabstraksikan semua perilaku khusus platform dalam kasus ini dan kasus lainnya?   -  person Andy    schedule 17.01.2019


Jawaban (2)


Lokal di OS X cukup rusak dan lokal di Linux (glibc) tidak cukup, sehingga Anda akan kesulitan menyelesaikannya dengan sukses. Satu-satunya cara adalah dengan menggunakan penyebut terkecil, yaitu lokal C. Namun jika Anda mengembangkan aplikasi yang benar-benar bergantung pada perilaku pemeriksaan bahasa alami yang berguna, Anda perlu melakukannya pada platform yang sama dengan yang Anda gunakan dalam produksi. Saya sarankan menyiapkan kotak virtual yang menjalankan Linux di mesin OS X Anda.

person Peter Eisentraut    schedule 02.05.2013
comment
Keunikan lokal OS X adalah salah satu alasan saya memasukkan ICU ke dalam daftar keinginan saya untuk hal-hal besar yang menakutkan yang akan menarik untuk ditangani suatu hari nanti. - person Craig Ringer; 03.05.2013

Anda dapat mengontrol pemeriksaan yang digunakan ketika Anda CREATE DATABASE - melihat opsi LC_COLLATE hingga CREATE DATABASE< /a>.

PostgreSQL akan menggunakan rutinitas pemeriksaan sistem operasi yang mendasarinya, jadi Anda tidak selalu bisa mendapatkan hasil yang sama persis jika OS tidak menawarkan lokal yang sama atau implementasinya berbeda. Menambahkan dukungan untuk menggunakan ICU untuk melakukan pemeriksaan internal yang tidak bergantung pada OS telah lama ada dalam daftar keinginan, namun ini adalah hal yang sulit. pekerjaan besar yang belum pernah dilakukan oleh siapa pun.

person Craig Ringer    schedule 02.05.2013