January 09, 2008
PostgreSQLでDBの文字コ ードを変更してpg _dumpする方法
移行元DB(含むサーバlocale)の文字コードがかつての主流EUC-JPで、
移行先DBの文字コードがUTF-8だったのでpg_dumpの際にちょっと困ったのでメモ。
dumpファイルがプレーンテキストならばdumpファイル自体の文字コードを変換したあとにdumpファイル内に書かれている"EUC-JP"を"UFT-8"に置換すればよいのだけれども、
ラージオブジェクトが含まれているとそうはいかない。
で、検索してみるとPostgreSQLのML解決方法を発見。
まず移行元(EUC-JP)のpostgresql.confを編集。
client_encoding = UTF-8
で、設定再読み込み。
/etc/init.d/postgresql reload
この状態でpg_dumpをすれば移行先で普通にpg_restoreが成功した。
pg_dumpの引数とかではなくて、postgresql.confをいじるとか結構トリッキーで面白い。
【参考URL】
http://ml.postgresql.jp/pipermail/pgsql-jp/2007-November/022542.html