PostgreSQLでデータベース作成時に、new collation (Japanese_Japan932) is incompatible with the collation of the template database (C)
仕事で担当の人がWindows10でPostgreSQLのデータベースを作成する
バッチファイルを作りました!と教えてくれたので、早速、試したら
タイトルのエラーが発生して「なんじゃこれはー?」と思ったので
調べて自分環境用にスクリプトから呼ばれるSQLクエリーを修正した
件を備忘録としてまとめてみる。
そもそも、Windows10だからってSJIS前提でインストールするのどうなの?
とか、共通環境なしで個別環境でXAMPPを使うってどうなの?
と思ったけど、そこは会社の方針に依るので、まぁ仕方ない(Φω|
でもWebサイトの開発で文字コードにSJISは違和感あるなー。
[前提]
自分は、PostgreSQLをローカルのXAMPP以下にインストールした時、
エンコーディングにUTF8、Locale='C'を設定した。
[エラーが発生したコマンド]
create database test01 with encoding 'UTF8' lc_collate='Japanese_Japan932' lc_ctype='Japanese_Japan932';
[エラー発生内容]
ERROR: new collation (Japanese_Japan932) is incompatible with the collation
of the template database (C).
HINT: Use the same collation as in the template database, or use template0 as
template.
[解決策]
以下の実行前に、pgAdmin4で既に作成されたschema,role,databaseを
それぞれ削除しておく。
create database test01 with encoding 'UTF8' template template0 lc_collate='Japanese_Japan932' lc_ctype='Japanese_Japan932';
※これは暫定的に直しただけなので、次に問題が発生したらアンインストール
+再インストールでLocaleにC以外を設定するとこからやらないといかんかも
しれん・・・
[参考サイト]