Mac OS(開発者)からLinux(プロダクションサーバ)に切り替えると、Postgresの照合は基本的なオペレーティングシステムの設定に依存するため、Postgresの照合が変更されます。LinuxでMac OSと同じPostgres照合動作をどうすればできますか?
LinuxでMac OSと同じPostgres照合動作をどのように達成できますか?
私はPostgresの9.2
Mac OS(開発者)からLinux(プロダクションサーバ)に切り替えると、Postgresの照合は基本的なオペレーティングシステムの設定に依存するため、Postgresの照合が変更されます。LinuxでMac OSと同じPostgres照合動作をどうすればできますか?
LinuxでMac OSと同じPostgres照合動作をどのように達成できますか?
私はPostgresの9.2
を実行していますが、使用される照合を制御することができたときCREATE DATABASE
からsee the LC_COLLATE
option to CREATE DATABASE
。
PostgreSQLは基本的なオペレーティングシステムの照合ルーチンを使用します。したがって、OSが正確に同じロケールを提供していない場合、またはその実装が異なる場合は常に正確に一致するとは限りません。 using ICUのサポートを追加することで、OSの独立した内部照合を行うことが長い間希望されていましたが、誰もまだやっていないほど巨大な仕事です。
OS Xのロケールは十分に壊れていて、Linux(glibc)のロケールは十分ではないため、これを正常に並べ替えるのが難しくなります。唯一の方法は、Cロケールである最小の共通分母を使用することです。しかし、実際に有用な自然言語の照合動作に依存するアプリケーションを開発する場合は、実動環境で使用するのと同じプラットフォーム上で行う必要があります。私はあなたのOS Xマシン上でLinuxを実行している仮想ボックスを設定することをお勧めします。
OS Xのロケールの癖は、私が "ICUに変換"した理由の1つです。恐ろしい巨大なもののウィッシュリストでは、ある日取り組むのが面白いでしょう。 –