2016/02/01
ECCUBE2.13 ECCUBE2.11~ ECCUBE2.4
久々にECCUBEのリニューアルが入り、
2.11から2.13への移行があったため備忘録として残します。
以前、2.4から2.13へのバージョンアップがあり、
その時に参考にしたサイトです。
ECCUBEのDB移行【ver 2.3.4 → 2.13.1】
【1】各バージョンのECCUBEをインストール
ローカルあるいはサーバーに各ECCUBE(2.11.5、2.12.6、2.13.1)をインストールします。
【2】2.4のエクスポート
オーナーズストアからデータエクスポートモジュール(2.4系)を入手し、
管理画面でモジュールが追加されているか確認をしてください。
参考サイトによるとモジュールの修正が必要です。
LC_Page_Mdl_Down_Cw_Config.phpの106行目付近
$where = "classcategory_id1 <> '0' AND classcategory_id2 <> '0'"; ↓↓↓修正↓↓↓ $where = "dtb_products_class.classcategory_id1 <> '0'";
修正が完了したらエクスポートをしてください。
【3】2.11へインポート
オーナーズストアからデータインポートモジュール(2.11系) を入手し、
先ほどインストールをした2.11へモジュールが追加されているか確認してください。
参考サイトによるとファイルの修正が必要です。
LC_Page_Mdl_Upload_Cyber.phpの1130行目以降
// $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】2.11のデータエクスポート
オーナーズストアよりデータエクスポートモジュール(2.11系)を入手し、
2.11にモジュールが追加されているか確認をして、データをエクスポートします。
【5】2.12へインポート
オーナーズストアよりデータ移行プラグイン(インポート)を入手し、
先ほどインストールしたECCUBE2.12にモジュールが追加されているか確認をしてください。
2.11のエクスポートデータを2.12へアップします。
参考サイトによると、
「なぜか dtb_products_status テーブルの移行が忘れられているので、ver2.11.5のテーブルからver2.12.4のテーブルにデータをコピーしてください。」
ということでDBから直接データをコピペしてください。
【追加】
実際に作業をした案件で、商品だけインポートできませんでした。
DBをみるとdtb_productsのみがインポートされていなかったため、
一旦、2.12のdtb_productsを削除し、2.11のSQLをアップしたところ無事表示されました。
気を付けなくてはいけないのは、dtb_products_classは2.11と2.12はカラム構造が違います。
2.11のSQLをそのままインポートするとエラーになります。
今回の作業では、dtb_products_classはすでにインポートされていたので問題はありませんでした。
【5】2.12→2.13
2.12と2.13ではテーブルのカラムが違うため注意が必要です。
まず、ver2.12.4用のDBをver2.13.1用に複製します。
複製したら、下記の参考サイトからDBアップグレード用のSQLを入手し実行してください。
参考サイト
EC-CUBE2.12.6から2.13.1にアップグレードする為のSQL
SQL実行後、ver2.13.1の data/config/config.php の各定数の値を変更してください。
<変更箇所>
・使用するDBを、アップグレードしたDBに変更
・「AUTH_MAGIC」の値をver2.12.4のconfig.phpと同じ値に変更
MySQLからPostgreSQLの場合には、こちらの記事も参考にしてください。
【ECCUBE】DBのインポート作業
上記の作業はECCUBEをカスタムしていないことを前提としています。
classファイルやDBをカスタマイズしている場合には、移行先でもカスタムが必要になります。
また、バージョン違いによってカスタムファイルが動かないことが多々ありますので注意が必要です。
ゼヒトモ内でのプロフィール: ROCKSTREAM, ゼヒトモのホームページ作成・制作サービス, 仕事をお願いしたい依頼者と様々な「プロ」をつなぐサービス
2024/08/20
神社
御朱印
2024/07/06
神社
御朱印
2024/07/06
神社
御朱印
2024/02/09
神社
2024/02/09
神社