昨日のエントリでsqlalchemyで接続すると、文字エンコードが当該DBのclient_encodeになってしまう件をかきました。
悪いのはSQL_ASCIIで作成したDBにUTF8のデータを突っ込んでたから。というわけで、UTF8に変換してみました。
まずダンプする
まずpg_dumpで当該DBをダンプ。
$ /usr/local/pgsql/bin/pg_dump hogedb > hogedb.dmp
UTF8で別DBを作成
$ /usr/local/pgsql/bin/createdb -E utf8 hogedb_utf8
先ほどダンプしたファイルからclient_encodingの行を取り除く
エディタかなにかで
SET client_encoding = 'SQL_ASCII';
この行をとりのぞく。でかくてviでは無理ならsedかgrepでもできる。
$ nkf --oc=UTF-8 hogedb.dmp | /usr/local/pgsql/bin/psql hogedb_utf8 -f -