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 で統一出来たら丸く収まる問題なんだけど、世の中そんなに賢く回ってないんでしょうね。