2010/10/24(日)postgreSQL にて、initdb時と違う文字コードで DB 生成
2017/10/12 4:10
しかし、当方では検証を終えていないので、8.4.x を使用しています。
UTF-8 なDBを作成しようと、
createdb -U hoge -E utf-8 exampledb
としたところ、
createdb: database creation failed:
ERROR: new encoding (UTF8) is incompatible with the encoding of
the template database (EUC_JP)
HINT: Use the same encoding as in the template database,
or use template0 as template.
※見やすいように適当に改行しています。
実際の表示体裁は、画面幅一杯で折り返して表示します。
という、横文字エラーメッセージ出て作成できません。
散々既出のようですが、メモ代わりということで。。
横文字は解読が苦手orz だが、いろいろサイトを訪ねあたってみると、どうも、template0 を使って生成しろ、ということらしい。。
当方では、initdb (サーバに初期化データベースをインストール)時に、文字コードを EUC-JP にしました。こんな感じ:
initdb -D /db --encoding=EUC_JP --locale=C
この場合、EUC-JP 以外の文字コードでDBを生成する時はこうしないといけないようです。
createdb -U hoge -E utf-8 -T template0 exampledb
これで何事も無かったかのように UTF-8 なDBが生成できました。
何でこんなことになったのかは、知りません。orz