移行対象は「商品データ(カテゴリ・規格含む)」「顧客データ」「受注データ」「店舗基本情報」です。
以下、作業の備忘録。
■作業の流れ
モジュールとプラグインを駆使して、段階的にアップデートしていきます。
順序としては、
2.3.4→2.11.5→2.12.4→2.13.1
となりますので、2.11.5、2.12.4、2.13.1をインストールできる環境が必要です。
(1)ECCUBEのインストール
まずは2.11.5、2.12.4、2.13.1の3バージョンをサーバにインストールしてください。商品画像は各バージョンの upload ディレクトリ以下に手動でコピーしておいてください。
(商品画像の有無にかかわらずDBの移行は可能。)
(2)ver2.3.4からデータエクスポート
オーナーズストアからエクスポート用モジュールを入手し、ver2.3.4にインストールします。それではサクッとエクスポート…といきたいところですが、少々モジュールの手直しが必要です。
$where = "classcategory_id1 <> '0' AND classcategory_id2 <> '0'"; ↓↓↓修正↓↓↓ $where = "dtb_products_class.classcategory_id1 <> '0'";ファイルを修正したらデータをエクスポートしてください。
(3)ver2.11.5にデータインポート
オーナーズストアからインポート用モジュールを入手し、ver2.11.5にインストールします。そしてまたもやインポートする前にモジュールの手直しです。
// $where .= " )"; ↓修正↓ if ($where) $where .= " )"; if ($arrList['class_name'] != "" && $arrList['classcategory_name'] != "") { $class_id = $objQuery->getOne("SELECT class_id FROM dtb_class WHERE name = ?", array($arrList['class_name'])); $classcategory_id2 = $objQuery->getOne("SELECT classcategory_id FROM dtb_classcategory WHERE class_id =? AND name = ?", array($class_id,$arrList['classcategory_name'])); // $where .= " AND classcategory_id = ?"; ↓修正↓ $where .= $where ? " AND classcategory_id = ?" : "classcategory_id = ?"; $arrval[] = $classcategory_id2; $class_combination_id = $objQuery->getOne("SELECT class_combination_id FROM dtb_class_combination WHERE ".$where, $arrval); $product_class_id = $objQuery->getOne("SELECT product_class_id FROM dtb_products_class WHERE product_id = ? AND class_combination_id = ?", array($arrList['product_id'], $class_combination_id)); } else { // $where .= " AND product_id = ?"; ↓修正↓ $where .= $where ? " AND product_id = ?" : "product_id = ?"; $arrval[] = $arrList['product_id']; // $product_class_id = $objQuery->getOne("SELECT product_class_id FROM dtb_products_class WHERE ".$where, $arrval); ↓修正↓ $product_class_id = $objQuery->getOne("SELECT product_class_id FROM dtb_products_class LEFT JOIN dtb_class_combination ON dtb_products_class.class_combination_id = dtb_class_combination.class_combination_id WHERE ".$where, $arrval); }ファイルを修正したら、前項でエクスポートしたデータをインポートしてください。
(4)ver2.11.5から2.12.4用にデータエクスポート
オーナーズストアからエクスポート用モジュールを入手し、ver2.11.5にインストールします。このモジュールは手直しする必要は無いと思います(多分)。
ただ、かなり重いクエリを実行しているらしく、環境によってはエクスポートにかなり時間がかかるようです。
私の場合、ダウンロードがはじまるまで10分程度かかりました。
(5)ver2.12.4にデータインポート
オーナーズストアからインポート用プラグインを入手し、ver2.12.4にインストールしたら、前項でエクスポートしたデータをインポートしてください。次に、なぜか dtb_products_status テーブルの移行が忘れられているので、ver2.11.5のテーブルからver2.12.4のテーブルにデータをコピーしてください。
(6)ver2.12.4用のDBを2.13.1用にアップグレード
こちらのサイトを参考にさせていただきました。まず、ver2.12.4用のDBをver2.13.1用に複製します。
複製したら、前述の参考サイトからDBアップグレード用のSQLを入手し実行してください。
SQL実行後、ver2.13.1の data/config/config.php の各定数の値を変更してください。
<変更箇所>
・使用するDBを、アップグレードしたDBに変更
・「AUTH_MAGIC」の値をver2.12.4のconfig.phpと同じ値に変更
以上で完了です。
いちおう今のところ問題なさげに稼動しておりますが、参考にされる場合は自己責任でお願いいたします。