今回の移転対象EC-CUBEバージョンは、1.3.2 古いです。
これを期に最新バージョンに引き上げたいのでまず検討してみます。
が!
・EC-CUBEのデータエクスポート機能がバグっている。
・最新バージョンとテーブル構造が大きく異なっている。(対処は出来なくはないがかなり面倒)
などの問題がありひとまず残念。
次に現行バージョンのまま移行方法と考えられるのは、
1.移転先にEC-CUBEをインストールし、DBのみ移行。
2.EC-CUBE、DBともに強制的に移行。
旧バージョンのシステムが既にダウンロードできなくなっている。
システムをカスタマイズしてしまっている。
という理由でボツ。
残るは2.のまるごと強引に移行しちゃうと言う方法です。
実際これが一番楽なのかもしれません。
基本的にやることは3つのみ。
・Webサーバーからファイルをまるごとコピー
・dbサーバーからdbをまるごとコピー
・install.php内の設定情報を移転先にあわせて書き換え。
これだけで移転完了です。
手順ですが、
・EC-CUBEシステムのディレクトリを丸ごとコピーし、FTPで移転先に転送。
※LFTPでミラーリングコピーするとパーミションもコピーできて作業が楽
でもサーバー環境によってはうまく機能してくれないことも…参った(><)
パーミションは、移転元と見比べて設定していくしかない。
一気に設定してくれるプログラムを公開してくれている人もおり、
とりあえず動くようにしたい場合はありがたいものだが、
まるむしが見たものは、全部ひっくるめてゆるゆるのパーミションを
与えてエラーを出ないようにしており、セキュリティ面でかなり問題がある。
使用する場合は承知の上で使用しなければならない。
・/bin/install.php にパス、DB接続情報などが記録されているので、
移転先にあわせて書き換えること。
・DBをエクスポート。(phpMyAdminなどのツールを使うと楽)
まるむしは、phpMyAdminを使って作業しました。
・データベースを選択し、エクスポートタブを選択。
・エクスポート対象は、全テーブルを選択。
・エクスポートの形式は、SQL。
※オプションはデフォルトで問題ないが、
まるむしは思うところがあり「完全なINSERT文を作成する」を選択。
(項目名など省略されないのでファイルサイズは大きくなる)
・ファイルに保存にチェックを入れる。
(これをしないとブラウザー内に大量のデータが表示されることになる)
・「実行」でファイルに保存。
・移転先のDBにインポートする。(phpMyAdminなどのツールを使うと楽)
まるむしは、phpMyAdminを使って作業しました。
・使用する接続に、データベースのクリエート権限がなかったので事前に用意。
・エクスポートしたファイルをテキストエディタで開く。
(メモ帳はダメ、秀丸などのキャラクタセットをちゃんと意識したエディタを使うこと)
・今回事前にデータベースを用意したので「CREATE DATABASE…」を削除。
・いらないデータを削除。
dtb_bat_order_daily
dtb_bat_order_daily_hour
dtb_bat_relate_products
これはら一定期間運用していたら肥大化していると思うが、
これは集計用のデータのようなので過去のログが必要なければ移行しない。
table create だけ行なって、insert文をすべて削除する。
・後で用意できるマスターは削除する。
mtb_zip
データ量が多いのでインポート時にエラーになる場合が多い。
これは郵便番号のマスターだが後から取り込み出来るので、
table create だけ行なって、insert文をすべて削除する。
・一時情報も削除する。
dtb_session
セッション情報なので一時データだ。
table create だけ行なって、insert文をすべて削除する。
他にもあるだろうが、移行に支障のないサイズなのでそのままにする。
・編集したエクスポートファイルを、移転先のインポートファイルに指定して
インポートを実行。
データが多くてタイムアウトする場合は、画面はそのままで再実行することにより、
続きをインポートすることが出来る。
(一旦終了すると、create tableでエラーになるので注意)
これで移転は完了だ。
実に簡単。
しかしこれは机上の理屈、実際行なうと色々と問題が….^^;
次回そのあたり潰していきます。
コメント