Leopard x PostgreSQL x EUC_JP その2

昨日の PostgreSQL文字コード、普段から PostgreSQL 使う人の間じゃ知ってて当然の話だったらしい...

% sudo su postgres -c '/opt/local/lib/postgresql83/bin/initdb -D /opt/local/var/db/postgresql83/defaultdb --no-locale'

or

% sudo -u postgres /opt/local/lib/postgresql83/bin/initdb -D /opt/local/var/db/postgresql83/defaultdb --no-locale

で PostgreSQL を最初に初期化する時に --no-locale を付けて初期化してあげる必要があったとのこと。

MacPorts で入れた時に表示されていた初期化コードだと --no-locale が付いてないのが原因だったわけだ。

っでやってみたところ、これだとデフォルトの文字コードが SQL_ASCII になっていて、なんだか嫌な気分なので、これからその辺調べる。

ちなみに SIer な企業って PostgreSQL を好む気がする。

追記
% sudo -u postgres /opt/local/lib/postgresql83/bin/initdb -D /opt/local/var/db/postgresql83/defaultdb --no-locale --encoding=UTF8

さらに --encoding=UTF8 を付けて初期化すればデフォルトのデータベースに UTF-8 を使うようになる。

        List of databases
   Name    |  Owner   | Encoding 
-----------+----------+----------
 postgres  | postgres | UTF8
 test      | ashizawa | EUC_JP
 template0 | postgres | UTF8
 template1 | postgres | UTF8

こんな感じ。

しかし設定ファイルとかに設定を書くわけじゃないとか、軽くバッドノウハウですね。

unicode で統一出来たら丸く収まる問題なんだけど、世の中そんなに賢く回ってないんでしょうね。