EC-CUBEをMySQLからPostgreSQLに移行

かねてからずっと行いたいと思っていたデータベースの移行。

EC-CUBEをMySQLからPostgreSQLに移行です。

EC-CUBEはPostgreSQLをベース?に開発されていますので

PostgreSQLとの方が相性がよく速度も速いみたいです。


インストール当初はMySQLしか知りませんでしたからMySQLで構築していましたが

今回データベースをイロイロ調整して移行作業してみました。

作業はEC-CUBE上のバックアップなどはまったく使わず「phpMyAdmin」→「phpPgAdmin」です。

登録ユーザーのパスワードもそのまま移行できるのでこれがオススメ。

<参考>【EC-CUBE】mySQLからpostgreSQLへデータを移行する

1. MYSQL[phpMyAdmin]のデータをテーブルごとにCSVで書き出す。
エクスポート:
MS Excel 用の CSV
オプション:
NULL の代替文字列(NULL)/1 行目にフィールド名を追加する(チェック)/Excel のエディション(Windows)
ファイルに保存する(チェック)/圧縮(無し)
エンコード(non)

で実行。

「dtb_bat_order_daily」「dtb_bat_order_daily_age」「dtb_bat_order_daily_hour」
「mtb_zip」
は、後から集計しなおしたりすればいいので特に移行しなくてもいいんじゃないだろか

「dtb_mail_history」とかはデータがデカすぎるのでココ最近の注文分だけピックアップして移行。

次は、僕の場合必要だった作業。。

2. CSVファイルを保存したら、エディタで開いてUTF-8 → EUC_JP で保存しなおす。。

では、PostgreSQLに移行します。

3. PSQL側のデータベースを用意して中身を全部空にする。

4. PostgreSQL[phpPgAdmin]テーブルを選択して、上のタブメニューからインポート。
フォーマット(CSV)/NULL文字を許可する(¥n、NULL、空の文字列/項目 すべて選択)
エクスポートして文字エンコード調整済のファイルを選択。 インポート。。

インポートできたら次のテーブルへ。。

※データベースを改造してカラム追加などしている場合は同様にPSQL側も追加。
※インポートエラーはエラーコメントに沿ってCSVデータを調整。
 カラム不足や機種依存文字?の文字化け??などでエラーがありました。
※データが大きく失敗するテーブルは分割??

5. シーケンスの調整
 各データ テーブルのid値などで現在の最終値を調整。
 対応するテーブルを確認しながら「Set value」してやる。 

<参考>ページの「VIEW」については。。ちょっと不明です。。自分の場合は不要だった??

6. で、読み込むデータベースを「install.inc」で変更し、
 MySQL対策していた「data/class/SC_DbConn.php」を元に戻す。

 EC-CUBE+MySQLでの文字化け的なもの

コツコツやれば何とかなりました。これで移行完了!

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
Highslide for Wordpress Plugin