EC-CUBEのPostgreSQLで文字コードをSQL_ASCIIからUTF-8に直す方法
なれないPostgreSQLで文字コードを間違えた
EC-CUBEは現時点(2.13.2)でもやはりPostgreSQLを使ったほうがパフォーマンスが高いようです
普段MySQLばかりを使っていている人だと、文字コードを間違えてcreatedbしてしまうこともあるでしょう
ある程度構築が進んでると再インストールは酷ですよね(笑)
今回は、再インストールせずにDBをUTF-8に変更するやり方をお教えします
注意
- いままで制作したデータを失わないようにバックアップを必ずとりましょう
- Redhat系(CentOS6)のお話です
- SSHが使えて最低限のコマンドを知っている人向けの内容です
- 簡単出品王子ご契約者様は無料にてアドバイスも出来ますのでお問い合わせ下さいませ
やりかた
1.文字コードを変換するnkfをインストールしておきます
# yum install nkf
2.ポスグレユーザーにsu
# su postgres
3.自分のホームフォルダに移動
$ cd ~
4.pg_dumpにてデータをダンプ
eccubeにインストールされているDB名が「eccube_db」の場合
$ pg_dump eccube_db > eccube_db.dmp
5.新たにUTF-8のデータベースを制作
$ createdb eccube_db_utf8 –encoding=utf8 –template=template0
6.ダンプデータをバックアップ
$ cp eccube_db.dmp eccube_db.backup.dmp
7.ダンプデータ編集
$ vi eccube_db.dmp
以下の一文を消す
SET client_encoding = 'SQL_ASCII';
8.文字を変換してインポート
$ nkf –oc=UTF-8 eccube_db.dmp | psql eccube_db_utf8 -f -
9.確認
phpPGadminなどで見て文字化けが直っていれば成功です
データベースの名称を今の環境に戻しましょう