【PostgreSQL】文字コードを指定したcreatedbでエラーが出るときの解決策

PostgreSQLで createdb の際に文字コードを指定したときに下記のようなエラーで失敗してしまうことがあります。

$ createdb --encoding=euc_jp testdb
createdb: database creation failed: ERROR:  new encoding (EUC_JP) is incompatible with the encoding of the template database (UTF8)
HINT:  Use the same encoding as in the template database, or use template0 as template.

原因はデフォルト文字コードと異なる文字コードを指定した為。
ver 8.4以上で発生する仕様のようです。

解決策はヒントにも書かれているように、テンプレートとして template0 を指定すればOKです。

$ createdb testdb --encoding=euc_jp --template=template0

これでエラーは回避できます。

コメントを残す

メールアドレスが公開されることはありません。