2010-08-25 PostgreSQLのDBエンコードを変更
PostgreSQLのDBエンコードを変更
job |
昨日のエントリでsqlalchemyで接続すると、文字エンコードが当該DBのclient_encodeになってしまう件をかきました。
悪いのはSQL_ASCIIで作成したDBにUTF8のデータを突っ込んでたから。というわけで、UTF8に変換してみました。
まずダンプする
$ /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で文字コード変換して新しいDBへ投入
$ nkf --oc=UTF-8 hogedb.dmp | /usr/local/pgsql/bin/psql hogedb_utf8 -f -
コメントを書く
トラックバック - http://d.hatena.ne.jp/rougeref/20100825