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

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

 

 

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

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

Ⅰ 移行元の操作

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

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

(2)各テーブルのsqlをダウンロード(エクスポート)します。
—————————————-
① dtb_category
② dtb_class_category
③ dtb_class_name
④ dtb_product
⑤ dtb_product_category
⑥ dtb_product_class
⑦ dtb_product_image
⑧ dtb_product_stock
⑨ dtb_product_tag
⑩ dtb_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 id FROM dtb_category );

ALTER TABLE dtb_product_category ADD CONSTRAINT FK_B057789112469DE2 FOREIGN KEY (category_id) REFERENCES dtb_category (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
[/php]

2 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 id FROM dtb_class_category );
DELETE FROM dtb_product_class WHERE class_category_id2 NOT IN( SELECT id FROM dtb_class_category );

ALTER TABLE dtb_product_class ADD CONSTRAINT FK_1A11D1BA248D128 FOREIGN KEY (class_category_id1) REFERENCES dtb_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 (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
[/php]

3 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 id FROM dtb_class_name );

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

4 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_product_tag
・Constraint properties→「FK_59F696DE4584665A」
・カラム→「product_id」

⑤ dtb_order_item
・Constraint properties→「FK_A0C8C3ED4584665A」
・カラム→「product_id」

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

⑦ dtb_customer_favorite_product
・Constraint properties→「FK_ED6313834584665A」
・カラム→「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_order_item DROP FOREIGN KEY FK_A0C8C3ED4584665A;
ALTER TABLE dtb_product_category DROP FOREIGN KEY FK_B05778914584665A;
ALTER TABLE dtb_customer_favorite_product DROP FOREIGN KEY FK_ED6313834584665A;
[/php]

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

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

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

[php]
DELETE FROM dtb_product_class WHERE product_id NOT IN( SELECT id FROM dtb_product );
DELETE FROM dtb_product_image WHERE product_id NOT IN( SELECT id FROM dtb_product );
DELETE FROM dtb_product_tag WHERE product_id NOT IN( SELECT id FROM dtb_product );
DELETE FROM dtb_product_tag WHERE product_id NOT IN( SELECT id FROM dtb_product );
DELETE FROM dtb_order_item WHERE product_id NOT IN( SELECT id FROM dtb_product );
DELETE FROM dtb_product_category WHERE product_id NOT IN( SELECT id FROM dtb_product );
DELETE FROM dtb_customer_favorite_product WHERE product_id NOT IN( SELECT id FROM dtb_product );

ALTER TABLE dtb_product_class ADD CONSTRAINT FK_1A11D1BA4584665A FOREIGN KEY (product_id) REFERENCES dtb_product (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_product_image ADD CONSTRAINT FK_3267CC7A4584665A FOREIGN KEY (product_id) REFERENCES dtb_product (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_product_tag ADD CONSTRAINT FK_4433E7214584665A FOREIGN KEY (product_id) REFERENCES dtb_product (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_product_tag ADD CONSTRAINT FK_59F696DE4584665A FOREIGN KEY (product_id) REFERENCES dtb_product (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_order_item ADD CONSTRAINT FK_A0C8C3ED4584665A FOREIGN KEY (product_id) REFERENCES dtb_product (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_product_category ADD CONSTRAINT FK_B05778914584665A FOREIGN KEY (product_id) REFERENCES dtb_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 (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
[/php]

5 dtb_product_category

外部キー制約なし

(1)空にする。

(2)sqlインポート

6 dtb_product_class

外部キー制約あり。

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

② dtb_order_item
・Constraint properties→「FK_A0C8C3ED21B06187」
・カラム→「product_class_id」

③ dtb_cart_item
・Constraint properties→「FK_B0228F7421B06187」
・カラム→「product_class_id」

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

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

[php]
ALTER TABLE dtb_tax_rule DROP FOREIGN KEY FK_59F696DE21B06187;
ALTER TABLE dtb_order_item DROP FOREIGN KEY FK_A0C8C3ED21B06187;
ALTER TABLE dtb_cart_item DROP FOREIGN KEY FK_B0228F7421B06187;
ALTER TABLE dtb_product_stock DROP FOREIGN KEY FK_BC6C9E4521B06187;
[/php]

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

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

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

[php]
DELETE FROM dtb_tax_rule WHERE product_class_id NOT IN( SELECT id FROM dtb_product_class );
DELETE FROM dtb_order_item WHERE product_class_id NOT IN( SELECT id FROM dtb_product_class );
DELETE FROM dtb_cart_item WHERE product_class_id NOT IN( SELECT id FROM dtb_product_class );
DELETE FROM dtb_product_stock WHERE product_class_id NOT IN( SELECT id FROM dtb_product_class );

ALTER TABLE dtb_tax_rule ADD CONSTRAINT FK_59F696DE21B06187 FOREIGN KEY (product_class_id) REFERENCES dtb_product_class (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_order_item ADD CONSTRAINT FK_A0C8C3ED21B06187 FOREIGN KEY (product_class_id) REFERENCES dtb_product_class (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_cart_item ADD CONSTRAINT FK_B0228F7421B06187 FOREIGN KEY (product_class_id) REFERENCES dtb_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 (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
[/php]

7 dtb_product_image

外部キー制約なし

(1)空にする。

(2)sqlインポート

8 dtb_product_stock

外部キー制約なし

(1)空にする。

(2)sqlインポート

9 dtb_product_tag

dtb_product_tag自身に設定されている外部キー制約を削除する。

dtb_tag
・Constraint properties→「FK_4433E721BAD26311」
・カラム→「tag_id」

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

[php]
ALTER TABLE dtb_product_tag DROP FOREIGN KEY FK_4433E721BAD26311;
[/php]

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

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

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

[php]
DELETE FROM dtb_product_tag WHERE tag_id NOT IN( SELECT id FROM dtb_tag );

ALTER TABLE dtb_product_tag ADD CONSTRAINT FK_4433E721BAD26311 FOREIGN KEY (tag_id) REFERENCES dtb_tag (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
[/php]

10 dtb_tag

外部キー制約あり。

dtb_product_tag
・Constraint properties→「FK_4433E721BAD26311」
・カラム→「tag_id」

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

[php]
ALTER TABLE dtb_product_tag DROP FOREIGN KEY FK_4433E721BAD26311;
[/php]

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

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

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

[php]
DELETE FROM dtb_product_tag WHERE tag_id NOT IN( SELECT id FROM dtb_tag );

ALTER TABLE dtb_product_tag ADD CONSTRAINT FK_4433E721BAD26311 FOREIGN KEY (tag_id) REFERENCES dtb_tag (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
[/php]