関連するオプションは--locale=locale
です。 initdbへ データベースクラスターを初期化するコマンド。明示的に指定しない場合、デフォルトでシステムロケールになります。 (おそらくロケール「C」でUbuntuを実行します。)
PostgreSQLではできます template0
に基づいて新しいデータベースを作成することにより、異なるロケールのデータベースに忍び込みます。 デフォルトのtempleate1
の代わりに 。 マニュアルはこちら
を引用します :
ただし、目的のロケールでデータベースクラスターを再作成したいと思います。はるかにきれいです。
編集:利用可能なロケールに関する情報
使用のみ オペレーティングシステムによって提供されるロケール。 ここのマニュアル を引用します :
locale-gen
を見てください Unixシステムで、まだ生成されていないロケールを使用する場合。理解しておくべき重要なことは、OSに複数のロケールをインストールできますが、LC_CTYPE
などのシステムパラメータにはそのうちの1つしか選択できないということです。 、LC_COLLATE
、など。locale
の出力を見てください。 対locale -a
シェルで。通常はすべて同じで、LC_ALL
で設定します 。
@David:あなたがしたことで問題は解決したかもしれませんが、もっと簡単にできたはずです。また、環境変数LANG
にも注意してください。 デフォルトのみを提供します すべてのロケール設定。それらのいずれかが別のものに設定されている場合は、LANG
オーバーライドされます。 LC_ALL
を設定します 既存の設定を上書きします。これが
データベース(クラスター)の現在のロケール設定をすべて確認するには、データベースで実行します。
SHOW ALL;
またはより具体的に:
SELECT *
FROM pg_settings
WHERE name ~~ 'lc%';