2019年4月2日カテゴリー:

EC-CUBE3データ移行:カテゴリデータ・商品データ(MySQL)

 

 

EC-CUBE3→EC-CUBE3機能カスタマイズ版

機能カスタマイズ版はインストールと同時に機能が実装されます。
詳しくは↓こちらをご覧ください。
EC-CUBE3機能カスタマイズ版 
EC-CUBE4機能カスタマイズ版

Ⅰ 移行元の操作

(1)まずは、商品画像を移行先にコピーします。

・移行元/html/upload/save_image/ から画像をダウンロードします。
・移行先/html/upload/save_image/ にアップロード(コピーします)

(2)各テーブルのsqlをダウンロード(エクスポート)します。
—————————————-
① dtb_category
② dtb_category_count
③ dtb_category_total_count
④ dtb_class_category
⑤ dtb_class_name
⑥ dtb_product
⑦ dtb_product_category
⑧ dtb_product_class
⑨ dtb_product_image
⑩ dtb_product_stock
⑪ dtb_product_tag
—————————————-

Ⅱ 移行先の操作

1 dtb_category

外部キー制約あり。

dtb_product_category
① Constraint properties→「FK_B057789112469DE2」
② カラム→「category_id」

(1)下記SQLを実行して外部キーを削除する。

[php]
ALTER TABLE dtb_product_category DROP FOREIGN KEY FK_B057789112469DE2;
[/php]

(2)dtb_categoryテーブルを空にする。

(3)sqlをインポートする。アップロードファイル→参照、「実行」をクリック。

(4)下記SQLを実行して参照元テーブル「dtb_product_category」に外部キーを復元する。

[php]
DELETE FROM dtb_product_category WHERE category_id NOT IN( SELECT category_id FROM dtb_category );
ALTER TABLE dtb_product_category ADD CONSTRAINT FK_B057789112469DE2 FOREIGN KEY (category_id) REFERENCES dtb_category (category_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
[/php]

2 dtb_category_count

外部キー制約なし

(1)空にする。

(2)sqlインポート

3 dtb_category_total_count

外部キー制約なし

(1)空にする。

(2)sqlインポート

4 dtb_class_category

外部キー制約あり。

dtb_product_class

① Constraint properties→「FK_1A11D1BA248D128」
② カラム→「class_category_id1」

③ Constraint properties→「FK_1A11D1BA9B418092」
④ カラム→「class_category_id2」

(1)下記SQLを実行して外部キーを削除する。

[php]
ALTER TABLE dtb_product_class DROP FOREIGN KEY FK_1A11D1BA248D128;
ALTER TABLE dtb_product_class DROP FOREIGN KEY FK_1A11D1BA9B418092;
[/php]

(2)dtb_class_categoryテーブルを空にする。

(3)sqlをインポートする。アップロードファイル→参照、「実行」をクリック。

(4)下記SQLを実行して参照元テーブル「dtb_product_class」に外部キーを復元する。

[php]
DELETE FROM dtb_product_class WHERE class_category_id1 NOT IN( SELECT class_category_id FROM dtb_class_category );
DELETE FROM dtb_product_class WHERE class_category_id2 NOT IN( SELECT class_category_id FROM dtb_class_category );

ALTER TABLE dtb_product_class ADD CONSTRAINT FK_1A11D1BA248D128 FOREIGN KEY (class_category_id1) REFERENCES dtb_class_category (class_category_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_product_class ADD CONSTRAINT FK_1A11D1BA9B418092 FOREIGN KEY (class_category_id2) REFERENCES dtb_class_category (class_category_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
[/php]

5 dtb_class_name

外部キー制約あり。

dtb_class_category
① Constraint properties→「FK_9B0D1DBAB462FB2A」
② カラム→「class_name_id」

(1)下記SQLを実行して外部キーを削除する。

[php]
ALTER TABLE dtb_class_category DROP FOREIGN KEY FK_9B0D1DBAB462FB2A;
[/php]

(2)dtb_class_nameテーブルを空にする。

(3)sqlをインポートする。アップロードファイル→参照、「実行」をクリック。

(4)下記SQLを実行して参照元テーブル「dtb_class_category」に外部キーを復元する。

[php]
DELETE FROM dtb_class_category WHERE class_name_id NOT IN( SELECT class_name_id FROM dtb_class_name );

ALTER TABLE dtb_class_category ADD CONSTRAINT FK_9B0D1DBAB462FB2A FOREIGN KEY (class_name_id) REFERENCES dtb_class_name (class_name_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
[/php]

6 dtb_product

外部キー制約あり。

*********************************
① dtb_product_class
・Constraint properties→「FK_1A11D1BA4584665A」
・カラム→「product_id」

② dtb_product_image
・Constraint properties→「FK_3267CC7A4584665A」
・カラム→「product_id」

③ dtb_product_tag
・Constraint properties→「FK_4433E7214584665A」
・カラム→「product_id」

④  dtb_tax_rule
・Constraint properties→「FK_59F696DE4584665A」
・カラム→「product_id」

⑤ dtb_product_category
・Constraint properties→「FK_B05778914584665A」
・カラム→「product_id」

⑥ dtb_customer_favorite_product
・Constraint properties→「FK_ED6313834584665A」
・カラム→「product_id」

⑦ dtb_shipment_item
・Constraint properties→「FK_57C3C0394584665A」
・カラム→「product_id」

⑧ dtb_order_detail
・Constraint properties→「FK_58FE35734584665A」
・カラム→「product_id」

*********************************

(1)下記SQLを実行して外部キーを削除する。

[php]
ALTER TABLE dtb_product_class DROP FOREIGN KEY FK_1A11D1BA4584665A;
ALTER TABLE dtb_product_image DROP FOREIGN KEY FK_3267CC7A4584665A;
ALTER TABLE dtb_product_tag DROP FOREIGN KEY FK_4433E7214584665A;
ALTER TABLE dtb_tax_rule DROP FOREIGN KEY FK_59F696DE4584665A;
ALTER TABLE dtb_product_category DROP FOREIGN KEY FK_B05778914584665A;
ALTER TABLE dtb_customer_favorite_product DROP FOREIGN KEY FK_ED6313834584665A;
ALTER TABLE dtb_shipment_item DROP FOREIGN KEY FK_57C3C0394584665A;
ALTER TABLE dtb_order_detail DROP FOREIGN KEY FK_58FE35734584665A;
[/php]

(2)dtb_productテーブルを空にする。

(3)sqlをインポートする。アップロードファイル→参照、「実行」をクリック。

(4)下記SQLを実行して参照元テーブルに外部キーを復元する。

[php]
DELETE FROM dtb_product_class WHERE product_id NOT IN( SELECT product_id FROM dtb_product );
DELETE FROM dtb_product_image WHERE product_id NOT IN( SELECT product_id FROM dtb_product );
DELETE FROM dtb_product_tag WHERE product_id NOT IN( SELECT product_id FROM dtb_product );
DELETE FROM dtb_product_tag WHERE product_id NOT IN( SELECT product_id FROM dtb_product );
DELETE FROM dtb_product_category WHERE product_id NOT IN( SELECT product_id FROM dtb_product );
DELETE FROM dtb_customer_favorite_product WHERE product_id NOT IN( SELECT product_id FROM dtb_product );
DELETE FROM dtb_shipment_item WHERE product_id NOT IN( SELECT product_id FROM dtb_product );
DELETE FROM dtb_order_detail WHERE product_id NOT IN( SELECT product_id FROM dtb_product );
ALTER TABLE dtb_product_class ADD CONSTRAINT FK_1A11D1BA4584665A FOREIGN KEY (product_id) REFERENCES dtb_product (product_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_product_image ADD CONSTRAINT FK_3267CC7A4584665A FOREIGN KEY (product_id) REFERENCES dtb_product (product_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_product_tag ADD CONSTRAINT FK_4433E7214584665A FOREIGN KEY (product_id) REFERENCES dtb_product (product_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_product_tag ADD CONSTRAINT FK_59F696DE4584665A FOREIGN KEY (product_id) REFERENCES dtb_product (product_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_product_category ADD CONSTRAINT FK_B05778914584665A FOREIGN KEY (product_id) REFERENCES dtb_product (product_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_customer_favorite_product ADD CONSTRAINT FK_ED6313834584665A FOREIGN KEY (product_id) REFERENCES dtb_product (product_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_shipment_item ADD CONSTRAINT FK_57C3C0394584665A FOREIGN KEY (product_id) REFERENCES dtb_product (product_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_order_detail ADD CONSTRAINT FK_58FE35734584665A FOREIGN KEY (product_id) REFERENCES dtb_product (product_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
[/php]

7 dtb_product_category

外部キー制約なし

(1)空にする。

(2)sqlインポート

8 dtb_product_class

外部キー制約あり。

① dtb_tax_rule
・Constraint properties→「FK_59F696DE21B06187」
・カラム→「product_class_id」

④ dtb_product_stock
・Constraint properties→「FK_BC6C9E4521B06187」
・カラム→「product_class_id」

④ dtb_shipment_item
・Constraint properties→「FK_57C3C03921B06187」
・カラム→「product_class_id」

④ dtb_order_detail
・Constraint properties→「FK_58FE357321B06187」
・カラム→「product_class_id」

(1)下記SQLを実行して外部キーを削除する。

[php]
ALTER TABLE dtb_tax_rule DROP FOREIGN KEY FK_59F696DE21B06187;
ALTER TABLE dtb_product_stock DROP FOREIGN KEY FK_BC6C9E4521B06187;
ALTER TABLE dtb_shipment_item DROP FOREIGN KEY FK_57C3C03921B06187;
ALTER TABLE dtb_order_detail DROP FOREIGN KEY FK_58FE357321B06187;
[/php]

(2)dtb_product_classテーブルを空にする。

(3)sqlをインポートする。アップロードファイル→参照、「実行」をクリック。

(4)下記SQLを実行して参照元テーブルに外部キーを復元する。

[php]
DELETE FROM dtb_tax_rule WHERE product_class_id NOT IN( SELECT product_class_id FROM dtb_product_class );
DELETE FROM dtb_product_stock WHERE product_class_id NOT IN( SELECT product_class_id FROM dtb_product_class );
DELETE FROM dtb_shipment_item WHERE product_class_id NOT IN( SELECT product_class_id FROM dtb_product_class );
DELETE FROM dtb_order_detail WHERE product_class_id NOT IN( SELECT product_class_id FROM dtb_product_class );
ALTER TABLE dtb_tax_rule ADD CONSTRAINT FK_59F696DE21B06187 FOREIGN KEY (product_class_id) REFERENCES dtb_product_class (product_class_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_product_stock ADD CONSTRAINT FK_BC6C9E4521B06187 FOREIGN KEY (product_class_id) REFERENCES dtb_product_class (product_class_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_shipment_item ADD CONSTRAINT FK_57C3C03921B06187 FOREIGN KEY (product_class_id) REFERENCES dtb_product_class (product_class_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_order_detail ADD CONSTRAINT FK_58FE357321B06187 FOREIGN KEY (product_class_id) REFERENCES dtb_product_class (product_class_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
[/php]

9 dtb_product_image

外部キー制約なし

(1)空にする。

(2)sqlインポート

10 dtb_product_stock

外部キー制約なし

(1)空にする。

(2)sqlインポート

11 dtb_product_tag

外部キー制約なし

(1)空にする。

(2)sqlインポート