関連するオプションは--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%';