PostgreSQLのバージョンが上がったからなのか、それともScientific Linuxだからか分からないがこれまではまったことがないDB作成でハマる。
-bash-4.1$ createdb -E EUC_JP homedb createdb: データベースの生成に失敗しました: ERROR: 符号化方式 EUC_JP がロケール ja_JP.UTF-8 に合いません DETAIL: 選択された LC_CTYPE を設定するには、符号化方式 UTF8 である必要があります。 #二回目のトライエンコーディングとlocaleをあわせた -bash-4.1$ createdb -E EUC_JP --locale=ja_JP.EUC_JP homedb createdb: データベースの生成に失敗しました: ERROR: 新しい符号化方式(EUC_JP)はテンプレートデータベースの符号化方式(UTF8)と互換性がありません HINT: テンプレートデータベースの符号化方式と同じものを使うか、もしくは template0 をテンプレートとして使用してください #三回目じゃぁtemplate0をテンプレートして使うよ! -bash-4.1$ createdb -E EUC_JP --locale=ja_JP.EUC_JP homedb --template=template0
うーむ。どうやら8.4からDB作成時のパラメータが増えたようだ。エンコーディングと合わせてlocaleを設定してあげる必要がある。というわけでDBを新規作成する場合は何も手間がかからないUTF-8にするのがおすすめ。これなら他のパラメータはいらない。