EC-CUBE4.0.2カスタマイズ版を4.0.3へバージョンアップする方法

ご注意!

バージョンアップは、あくまでもご自身の責任で行ってください。
上手くいかない場合の原因を特定することはできませんので、こちらでは対応出来ませんし、責任も持てません。
必ずバックアップを取り、元に戻せる体制を整えてから、バージョンアップをお願いします。

ご自身でカスタマイズ編集されているファイルが、今回のバージョンアップファイルに含まれている場合、ファイルを上書きすると編集箇所がなくなってしまいます。
編集箇所をご確認の上、ファイル上書き後に、ご自身の編集箇所を追加するようにしてください。

続きを読む EC-CUBE4.0.2カスタマイズ版を4.0.3へバージョンアップする方法

EC-CUBE4.0.2→EC-CUBE4.0.3 バージョンアップファイルの一覧

EC-CUBE4.0.3では、次のデータベースが追加されています。

① dtb_order_itemに、tax_adjustカラムが追加。
② dtb_csvに、「税率」というデータが追加。

EC-CUBE4.0.2のデータベースに対して、次のSQLで追加することができます。
▼MySQL
———————————
ALTER TABLE dtb_order_item ADD tax_adjust decimal unsigned NOT NULL DEFAULT 0;
INSERT INTO dtb_csv (id, csv_type_id, creator_id, entity_name, field_name, reference_field_name, disp_name, sort_no, enabled, create_date, update_date, discriminator_type) VALUES (LAST_INSERT_ID(), 1, null , ‘Eccube\\\\Entity\\\\ProductClass’, ‘TaxRule’, ‘tax_rate’, ‘税率’, 31, false, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP,’csv’);
———————————
▼PostgreSQL
———————————
ALTER TABLE dtb_order_item ADD tax_adjust decimal NOT NULL DEFAULT 0;
INSERT INTO dtb_csv (id, csv_type_id, creator_id, entity_name, field_name, reference_field_name, disp_name, sort_no, enabled, create_date, update_date, discriminator_type) VALUES (nextval(‘dtb_block_block_id_seq’), 1, null , ‘Eccube\\\\Entity\\\\ProductClass’, ‘TaxRule’, ‘tax_rate’, ‘税率’, 31, false, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP,’csv’);
select setval(‘dtb_csv_id_seq’,(select max(id) from dtb_csv));
———————————

続きを読む EC-CUBE4.0.2→EC-CUBE4.0.3 バージョンアップファイルの一覧

EC-CUBE3:個別税率(軽減税率)が商品詳細ページ、金額計算に反映されない点を解消

2019年9月2日に(1)について掲載しました。
その後、2019年10月4日にGitHub/EC-CUBEでの解消方法を確認しましたので、(3)にその情報を掲載します。
不具合を解消する場合は、(3)の方法で行うとよいでしょう。

既に、(1)の方法で修正されている場合は、(2)の方法で元にもどしてから、(3)の方法で修正を行ってください。

 

zeiritu

・ 商品別税率機能を有効
・ 税率一覧 ID:1の「編集」で税率を10%に変更

商品登録画面の「詳細な設定」に消費税率欄が表示されます。
軽減税率に該当する商品のみ、「8」を入力します。(入力しない商品は、10%が適用)

ところが、
個別税率(軽減税率)が商品詳細ページ、金額計算に反映されません。

(1)次のファイルの修正で、正常な動作になります。

■src/Eccube/Repository/TaxRuleRepository.php
157行目付近、変更。

// Product
if ($Product && $productId > 0) {
$qb->andWhere('t.Product IS NULL OR t.Product = :Product');
$parameters['Product'] = $Product;
} else {
$qb->andWhere('t.Product IS NULL');
}

↓【修正】

// Product
if ($Product && $productId > 0) {
$qb->andWhere('t.Product IS NULL OR t.Product = :Product');
$parameters['Product'] = $Product;
// ▼個別税率設定が商品詳細ページに反映されない点を解消(下の2行を追加)
} else if ($ProductClass && $productClassId > 0) {
// ProductClassが渡ってきているが、$Productがnullのタイミングがあった時の対応
} else {
$qb->andWhere('t.Product IS NULL');
}

(2)上記の修正を元に戻す

下記の記述が(1)の修正で追加した部分なので、この部分を削除してください。
—————————————————–
// ▼個別税率設定が商品詳細ページに反映されない点を解消(下の2行を追加)
} else if ($ProductClass && $productClassId > 0) {
// ProductClassが渡ってきているが、$Productがnullのタイミングがあった時の対応
—————————————————–
↓【削除して元に戻す】

// Product
if ($Product && $productId > 0) {
$qb->andWhere('t.Product IS NULL OR t.Product = :Product');
$parameters['Product'] = $Product;
} else {
$qb->andWhere('t.Product IS NULL');
}

(3) 修正ファイルは同じです。

■src/Eccube/Repository/TaxRuleRepository.php

86行目付近に下記コードを追加します。
—————————————————————
// Product が null の場合は正常に税率取得できないため, Product を取得し直す
if ($ProductClass instanceof \Eccube\Entity\ProductClass && $Product === null) {
$this->getEntityManager()->refresh($ProductClass);
$Product = $ProductClass->getProduct();
}
—————————————————————
↓【結果、追加コードを含めた前後の記述】


// Pref Country 設定
 if (!$Pref && !$Country && $this->app['security']->getToken() && $this->app['security']->isGranted('ROLE_USER')) {
 /* @var $Customer \Eccube\Entity\Customer */
 $Customer = $this->app['security']->getToken()->getUser();
 $Pref = $Customer->getPref();
 $Country = $Customer->getCountry();
 }

// Product が null の場合は正常に税率取得できないため, Product を取得し直す
 if ($ProductClass instanceof \Eccube\Entity\ProductClass && $Product === null) {
 $this->getEntityManager()->refresh($ProductClass);
 $Product = $ProductClass->getProduct();
 }

 // 商品単位税率設定がOFFの場合
 /** @var $BaseInfo \Eccube\Entity\BaseInfo */
 $BaseInfo = $this->app['eccube.repository.base_info']->get();
 if ($BaseInfo->getOptionProductTaxRule() !== Constant::ENABLED) {
 $Product = null;
 $ProductClass = null;
 }

▼参考
https://github.com/EC-CUBE/ec-cube/pull/4310/files

EC-CUBE4:「熨斗(のし)を配送別で指定するプラグイン」修正のお願い

プラグインを有効にすると、noshi_mailtemplate_code.txtが、コンテンツ管理>ファイル管理に生成されますが、そのnoshi_mailtemplate_code.txtに誤りがありました。
テキストファイル通りにメールテンプレートに記載すると、「のしの種類」と「表書き(上段)」が逆に表示されてしまいます。

以下に示したファイルを下記のように修正してください。
「のしの種類」→GiftKind
「表書き(上段)」→GiftTie

修正後、管理画面でキャッシュ削除を行い、修正を反映させてください。

お手数をおかけしますが、よろしくお願い致します。

(1)■src/Eccube/Resource/template/default/Mail/order.html.twig

109行目付近
——————————————
のしの種類:{{ Shipping.GiftKind|default(‘選択されていません。’) }}&br/>
表書き(上段):{{ Shipping.GiftTie|default(‘なし’) }}&br/>
——————————————

(2)■src/Eccube/Resource/template/default/Mail/order.twig

94行目付近
——————————————
のしの種類:{{ Shipping.GiftKind|default(‘選択されていません。’) }}
表書き(上段):{{ Shipping.GiftTie|default(‘なし’) }}
——————————————

(3)■src/Eccube/Resource/template/default/Mail/shipping_notify.html.twig

83行目付近
——————————————
のしの種類:{{ Shipping.GiftKind|default(‘選択されていません。’) }}&br/>
表書き(上段):{{ Shipping.GiftTie|default(‘なし’) }}&br/>
——————————————

(4)■src/Eccube/Resource/template/default/Mail/shipping_notify.twig

66行目付近
——————————————
のしの種類:{{ Shipping.GiftKind|default(‘選択されていません。’) }}
表書き(上段):{{ Shipping.GiftTie|default(‘なし’) }}
——————————————

修正済みのnoshi_mailtemplate_code.txtは下記からダウンロードできます。
https://itoben.com/npshi_mailtemplate_code.txt

EC-CUBE3:3.0.17→3.0.18 バージョンアップファイルの一覧

(1)vendorフォルダを丸ごと入れ換え

現行サイトのvendorを削除し、新しいvendorと入れ替えてください。

(2)ファイルの入れ換え

以下、7点のファイルが修正されています。
下記ファイルについて、ご自身で編集されていない場合は、上書きされて構いませんが、編集されている場合は、編集箇所を追加してください。

直下
————————————
■composer.lock
————————————

src/Eccube/Common
————————————
■src/Eccube/Common/Constant.php
————————————

src/Eccube/Controller
————————————
■src/Eccube/Controller/ShoppingController.php
————————————

src/Eccube/Entity
————————————
■src/Eccube/Entity/Customer.php
■src/Eccube/Entity/Member.php
————————————

src/Eccube/Form
————————————
■src/Eccube/Form/Type/ShippingMultipleItemType.php
————————————

src/Eccube/Service
————————————
■src/Eccube/Service/ShoppingService.php
————————————

(3)上部のコメントエリアにおいて、下記の変更が行われているファイルが多数ありますが、プラグラム上問題が無いので、それらは変更ファイルとして扱っていません。

————————————
* Copyright(c) 2000-2015 LOCKON CO.,LTD. All Rights Reserved.
*
* http://www.lockon.co.jp/
————————————
↓【変更】
————————————
* Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
*
* http://www.ec-cube.co.jp/
————————————

 

EC-CUBE4データ移行:受注データ(MySQL)

 

 

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

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

Ⅰ 移行元の操作

各テーブルのsqlをダウンロード(エクスポート)します。
—————————————-
① dtb_order
② dtb_order_item
③ dtb_order_pdf
④ dtb_shipping
—————————————-

Ⅱ 移行先の操作

1 dtb_order

外部キー制約あり。

dtb_shipping
① Constraint properties→「FK_2EBD22CE8D9F6D38」
② カラム→「order_id」

dtb_mail_history
① Constraint properties→「FK_4870AB118D9F6D38」
② カラム→「order_id」

dtb_order_item
① Constraint properties→「FK_A0C8C3ED8D9F6D38」
② カラム→「order_id」

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

ALTER TABLE dtb_shipping DROP FOREIGN KEY `FK_2EBD22CE8D9F6D38`;
ALTER TABLE dtb_mail_history DROP FOREIGN KEY `FK_4870AB118D9F6D38`;
ALTER TABLE dtb_order_item DROP FOREIGN KEY `FK_A0C8C3ED8D9F6D38`;

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

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

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

DELETE FROM dtb_shipping WHERE order_id NOT IN( SELECT id FROM dtb_order );
DELETE FROM dtb_mail_history WHERE order_id NOT IN( SELECT id FROM dtb_order );
DELETE FROM dtb_order_item WHERE order_id NOT IN( SELECT id FROM dtb_order );

ALTER TABLE dtb_shipping ADD CONSTRAINT FK_2EBD22CE8D9F6D38 FOREIGN KEY (order_id) REFERENCES dtb_order (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_mail_history ADD CONSTRAINT FK_4870AB118D9F6D38 FOREIGN KEY (order_id) REFERENCES dtb_order (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_order_item ADD CONSTRAINT FK_A0C8C3ED8D9F6D38 FOREIGN KEY (order_id) REFERENCES dtb_order (id) ON DELETE RESTRICT ON UPDATE RESTRICT;

2 dtb_order_item

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

dtb_shipping
・Constraint properties→「FK_A0C8C3ED4887F3F8」
・カラム→「shipping_id」

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

ALTER TABLE dtb_order_item DROP FOREIGN KEY `FK_A0C8C3ED4887F3F8`;

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

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

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

DELETE FROM dtb_order_item WHERE shipping_id NOT IN( SELECT id FROM dtb_shipping );

ALTER TABLE dtb_order_item ADD CONSTRAINT FK_A0C8C3ED4887F3F8 FOREIGN KEY (shipping_id) REFERENCES dtb_shipping (id) ON DELETE RESTRICT ON UPDATE RESTRICT;

3 dtb_order_pdf

外部キー制約なし

(1)空にする。

(2)sqlインポート

4 dtb_shipping

外部キー制約あり。

dtb_order_item
① Constraint properties→「FK_A0C8C3ED4887F3F8」
② カラム→「shipping_id」

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

ALTER TABLE dtb_order_item DROP FOREIGN KEY `FK_A0C8C3ED4887F3F8`;

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

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

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

DELETE FROM dtb_order_item WHERE shipping_id NOT IN( SELECT id FROM dtb_shipping );

ALTER TABLE dtb_order_item ADD CONSTRAINT FK_A0C8C3ED4887F3F8 FOREIGN KEY (shipping_id) REFERENCES dtb_shipping (id) ON DELETE RESTRICT ON UPDATE RESTRICT;

EC-CUBE4データ移行:会員データ・管理者データ(MySQL)

 

 

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

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

※ ログイン暗号情報を移行するため、管理者のデータも移行する。

Ⅰ 移行元の操作

各テーブルのsqlをダウンロード(エクスポート)します。
—————————————-
① dtb_customer
② dtb_customer_address
③ dtb_customer_favorite_product
④ dtb_mail_history
⑤ dtb_member
—————————————-

Ⅱ 移行先の操作

1 dtb_customer

外部キー制約あり。

dtb_order
① Constraint properties→「FK_1D66D8079395C3F3」
② カラム→「customer_id」

dtb_customer_address
① Constraint properties→「FK_6C38C0F89395C3F3」
② カラム→「customer_id」

dtb_customer_favorite_product
① Constraint properties→「FK_ED6313839395C3F3」
② カラム→「customer_id」

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

ALTER TABLE dtb_order DROP FOREIGN KEY `FK_1D66D8079395C3F3`;
ALTER TABLE dtb_customer_address DROP FOREIGN KEY `FK_6C38C0F89395C3F3`;
ALTER TABLE dtb_customer_favorite_product DROP FOREIGN KEY `FK_ED6313839395C3F3`;

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

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

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

DELETE FROM dtb_order WHERE customer_id NOT IN( SELECT id FROM dtb_customer );
DELETE FROM dtb_customer_address WHERE customer_id NOT IN( SELECT id FROM dtb_customer );
DELETE FROM dtb_customer_favorite_product WHERE customer_id NOT IN( SELECT id FROM dtb_customer );

ALTER TABLE dtb_order ADD CONSTRAINT FK_1D66D8079395C3F3 FOREIGN KEY (customer_id) REFERENCES dtb_customer (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_customer_address ADD CONSTRAINT FK_6C38C0F89395C3F3 FOREIGN KEY (customer_id) REFERENCES dtb_customer (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_customer_favorite_product ADD CONSTRAINT FK_ED6313839395C3F3 FOREIGN KEY (customer_id) REFERENCES dtb_customer (id) ON DELETE RESTRICT ON UPDATE RESTRICT;

2 dtb_customer_address

外部キー制約なし

(1)空にする。

(2)sqlインポート

3 dtb_customer_favorite_product

外部キー制約なし

(1)空にする。

(2)sqlインポート

4 dtb_mail_history

外部キー制約なし

(1)空にする。

(2)sqlインポート

5 dtb_member

外部キー制約あり。

dtb_faq
① Constraint properties→「FK_15046F5861220EA6」
② カラム→「creator_id」

dtb_class_name
① Constraint properties→「FK_187C95AD61220EA6」
② カラム→「creator_id」

dtb_product_class
① Constraint properties→「FK_1A11D1BA61220EA6」
② カラム→「creator_id」

dtb_mail_template
① Constraint properties→「FK_1CB16DB261220EA6」
② カラム→「creator_id」

dtb_ticker
① Constraint properties→「FK_1E9BC90861220EA6」
② カラム→「creator_id」

dtb_shipping
① Constraint properties→「FK_2EBD22CE61220EA6」
② カラム→「creator_id」

dtb_product_image
① Constraint properties→「FK_3267CC7A61220EA6」
② カラム→「creator_id」

dtb_delivery
① Constraint properties→「FK_3420D9FA61220EA6」
② カラム→「creator_id」

dtb_topimage
① Constraint properties→「FK_3B5AB76661220EA6」
② カラム→「creator_id」

dtb_lp
① Constraint properties→「FK_4177A97261220EA6」
② カラム→「creator_id」

dtb_product_tag
① Constraint properties→「FK_4433E72161220EA6」
② カラム→「creator_id」

dtb_mail_history
① Constraint properties→「FK_4870AB1161220EA6」
② カラム→「creator_id」

dtb_authority_role
① Constraint properties→「FK_4A1F70B161220EA6」
② カラム→「creator_id」

dtb_category
① Constraint properties→「FK_5ED2C2B61220EA6」
② カラム→「creator_id」

dtb_payment
① Constraint properties→「FK_7AFF628F61220EA6」
② カラム→「creator_id」

dtb_class_category
① Constraint properties→「FK_9B0D1DBA61220EA6」
② カラム→「creator_id」

dtb_product_stock
① Constraint properties→「FK_BC6C9E4561220EA6」
② カラム→「creator_id」

dtb_product
① Constraint properties→「FK_C49DE22F61220EA6」
② カラム→「creator_id」

dtb_news
① Constraint properties→「FK_EA4C351761220EA6」
② カラム→「creator_id」

dtb_csv
① Constraint properties→「FK_F55F48C361220EA6」
② カラム→「creator_id」

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

ALTER TABLE dtb_faq DROP FOREIGN KEY `FK_15046F5861220EA6`;
ALTER TABLE dtb_class_name DROP FOREIGN KEY `FK_187C95AD61220EA6`;
ALTER TABLE dtb_product_class DROP FOREIGN KEY `FK_1A11D1BA61220EA6`;
ALTER TABLE dtb_mail_template DROP FOREIGN KEY `FK_1CB16DB261220EA6`;
ALTER TABLE dtb_ticker DROP FOREIGN KEY `FK_1E9BC90861220EA6`;
ALTER TABLE dtb_shipping DROP FOREIGN KEY `FK_2EBD22CE61220EA6`;
ALTER TABLE dtb_product_image DROP FOREIGN KEY `FK_3267CC7A61220EA6`;
ALTER TABLE dtb_delivery DROP FOREIGN KEY `FK_3420D9FA61220EA6`;
ALTER TABLE dtb_topimage DROP FOREIGN KEY `FK_3B5AB76661220EA6`;
ALTER TABLE dtb_lp DROP FOREIGN KEY `FK_4177A97261220EA6`;
ALTER TABLE dtb_product_tag DROP FOREIGN KEY `FK_4433E72161220EA6`;
ALTER TABLE dtb_mail_history DROP FOREIGN KEY `FK_4870AB1161220EA6`;
ALTER TABLE dtb_authority_role DROP FOREIGN KEY `FK_4A1F70B161220EA6`;
ALTER TABLE dtb_tax_rule DROP FOREIGN KEY `FK_59F696DE61220EA6`;
ALTER TABLE dtb_category DROP FOREIGN KEY `FK_5ED2C2B61220EA6`;
ALTER TABLE dtb_payment DROP FOREIGN KEY `FK_7AFF628F61220EA6`;
ALTER TABLE dtb_class_category DROP FOREIGN KEY `FK_9B0D1DBA61220EA6`;
ALTER TABLE dtb_product_stock DROP FOREIGN KEY `FK_BC6C9E4561220EA6`;
ALTER TABLE dtb_product DROP FOREIGN KEY `FK_C49DE22F61220EA6`;
ALTER TABLE dtb_news DROP FOREIGN KEY `FK_EA4C351761220EA6`;
ALTER TABLE dtb_csv DROP FOREIGN KEY `FK_F55F48C361220EA6`;

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

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

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

DELETE FROM dtb_faq WHERE creator_id NOT IN( SELECT id FROM dtb_member );
DELETE FROM dtb_class_name WHERE creator_id NOT IN( SELECT id FROM dtb_member );
DELETE FROM dtb_product_class WHERE creator_id NOT IN( SELECT id FROM dtb_member );
DELETE FROM dtb_mail_template WHERE creator_id NOT IN( SELECT id FROM dtb_member );
DELETE FROM dtb_ticker WHERE creator_id NOT IN( SELECT id FROM dtb_member );
DELETE FROM dtb_shipping WHERE creator_id NOT IN( SELECT id FROM dtb_member );
DELETE FROM dtb_product_image WHERE creator_id NOT IN( SELECT id FROM dtb_member );
DELETE FROM dtb_delivery WHERE creator_id NOT IN( SELECT id FROM dtb_member );
DELETE FROM dtb_topimage WHERE creator_id NOT IN( SELECT id FROM dtb_member );
DELETE FROM dtb_lp WHERE creator_id NOT IN( SELECT id FROM dtb_member );
DELETE FROM dtb_product_tag WHERE creator_id NOT IN( SELECT id FROM dtb_member );
DELETE FROM dtb_mail_history WHERE creator_id NOT IN( SELECT id FROM dtb_member );
DELETE FROM dtb_authority_role WHERE creator_id NOT IN( SELECT id FROM dtb_member );
DELETE FROM dtb_tax_rule WHERE creator_id NOT IN( SELECT id FROM dtb_member );
DELETE FROM dtb_category WHERE creator_id NOT IN( SELECT id FROM dtb_member );
DELETE FROM dtb_payment WHERE creator_id NOT IN( SELECT id FROM dtb_member );
DELETE FROM dtb_class_category WHERE creator_id NOT IN( SELECT id FROM dtb_member );
DELETE FROM dtb_product_stock WHERE creator_id NOT IN( SELECT id FROM dtb_member );
DELETE FROM dtb_product WHERE creator_id NOT IN( SELECT id FROM dtb_member );
DELETE FROM dtb_news WHERE creator_id NOT IN( SELECT id FROM dtb_member );
DELETE FROM dtb_csv WHERE creator_id NOT IN( SELECT id FROM dtb_member );

ALTER TABLE dtb_faq ADD CONSTRAINT FK_15046F5861220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_class_name ADD CONSTRAINT FK_187C95AD61220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_product_class ADD CONSTRAINT FK_1A11D1BA61220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_mail_template ADD CONSTRAINT FK_1CB16DB261220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_ticker ADD CONSTRAINT FK_1E9BC90861220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_shipping ADD CONSTRAINT FK_2EBD22CE61220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_product_image ADD CONSTRAINT FK_3267CC7A61220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_delivery ADD CONSTRAINT FK_3420D9FA61220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_topimage ADD CONSTRAINT FK_3B5AB76661220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_lp ADD CONSTRAINT FK_4177A97261220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_product_tag ADD CONSTRAINT FK_4433E72161220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_mail_history ADD CONSTRAINT FK_4870AB1161220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_authority_role ADD CONSTRAINT FK_4A1F70B161220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_tax_rule ADD CONSTRAINT FK_59F696DE61220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_category ADD CONSTRAINT FK_5ED2C2B61220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_payment ADD CONSTRAINT FK_7AFF628F61220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_class_category ADD CONSTRAINT FK_9B0D1DBA61220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_product_stock ADD CONSTRAINT FK_BC6C9E4561220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_product ADD CONSTRAINT FK_C49DE22F61220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_news ADD CONSTRAINT FK_EA4C351761220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_csv ADD CONSTRAINT FK_F55F48C361220EA6 FOREIGN KEY (creator_id) REFERENCES dtb_member (id) ON DELETE RESTRICT ON UPDATE RESTRICT;

6 移行元のパスワードでログインできるようにする

(1)移行元、EC-CUBE直下に生成されている「.env」をダウンロード
(2)ECCUBE_AUTH_MAGIC=***********************←コピー
(3)移行先、EC-CUBE直下に生成されている「.env」をダウンロード
(4)ECCUBE_AUTH_MAGIC=***********************←ペーストして、アップロード

つまり、移行元のECCUBE_AUTH_MAGICを移行先のECCUBE_AUTH_MAGICで使用するということです。

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を実行して外部キーを削除する。

ALTER TABLE dtb_product_category DROP FOREIGN KEY `FK_B057789112469DE2`;

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

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

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

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;

2 dtb_class_category

外部キー制約あり。

dtb_product_class

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

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

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

ALTER TABLE dtb_product_class DROP FOREIGN KEY `FK_1A11D1BA248D128`;
ALTER TABLE dtb_product_class DROP FOREIGN KEY `FK_1A11D1BA9B418092`;

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

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

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

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;

3 dtb_class_name

外部キー制約あり。

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

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

ALTER TABLE dtb_class_category DROP FOREIGN KEY `FK_9B0D1DBAB462FB2A`;

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

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

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

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;

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を実行して外部キーを削除する。

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`;

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

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

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

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;

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を実行して外部キーを削除する。

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`;

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

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

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

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;

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を実行して外部キーを削除する。

ALTER TABLE dtb_product_tag DROP FOREIGN KEY `FK_4433E721BAD26311`;

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

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

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

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;

10 dtb_tag

外部キー制約あり。

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

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

ALTER TABLE dtb_product_tag DROP FOREIGN KEY `FK_4433E721BAD26311`;

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

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

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

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;

 

EC-CUBE4データ移行:phpMyAdminの基本操作

 

 

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

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

移行元のsqlをダウンロード

001 (1)移行元テーブル(dtb_AAA)の「エクスポート」タブをクリック。(2)エクスポート方法の「詳細」をチェックする。(3)フォーマット特有のオプションで、「データ」をチェックする。(4)「実行」をクリックしてダウンロードする。

カスタマイズ版のテーブルを空にして、移行元のCSVをインポート

002 (1)空にするテーブル(dtb_AAA)の「操作」タブをクリック、「テーブルを空にする」をクリック。
 003  (2)エラーが発生する場合(エラーなしの場合は→(8)へ)
外部キー制約が設定されているテーブルは空に出来ないのでエラーが発生。
エラー画面で表示されている参照元テーブル(dtb_product_category)を確認する。
 004 (3)参照元テーブル(dtb_product_category)を開く。
(4)「構造」タブをクリック、タブのすぐ下「Relation view」をクリックすると外部キー制約が確認できる。
(5)外部キー制約欄の「空にするテーブル(dtb_category)」の以下をコピーしておく。
① Constraint properties→「FK_B057789112469DE2」
② カラム→「category_id」
 005  (6)下記SQLを実行して外部キーを削除する。

ALTER TABLE dtb_product_category DROP FOREIGN KEY `FK_B057789112469DE2`;
 002  (7)空にするテーブル(dtb_category)の「操作」タブをクリック、「テーブルを空にする」をクリック。
 006  (8)CSVをインポートする。アップロードファイル→参照、「実行」をクリック。
 007  (9)下記SQLを実行して参照元テーブル(dtb_product_category)に外部キーを復元する。

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;

 

EC-CUBE3データ移行:受注データ(MySQL)

 

 

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

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

Ⅰ 移行元の操作

各テーブルのsqlをダウンロード(エクスポート)します。
—————————————-
① dtb_order
② dtb_order_detail
③ dtb_shipment_item
④ dtb_shipping
—————————————-

Ⅱ 移行先の操作

1 dtb_order

外部キー制約あり。

dtb_shipping
① Constraint properties→「FK_2EBD22CE8D9F6D38」
② カラム→「order_id」

dtb_mail_history
① Constraint properties→「FK_4870AB118D9F6D38」
② カラム→「order_id」

dtb_order_detail
① Constraint properties→「FK_58FE35738D9F6D38」
② カラム→「order_id」

dtb_shipment_item
① Constraint properties→「FK_57C3C0398D9F6D38」
② カラム→「order_id」
(1)下記SQLを実行して外部キーを削除する。

ALTER TABLE dtb_shipping DROP FOREIGN KEY `FK_2EBD22CE8D9F6D38`;
ALTER TABLE dtb_mail_history DROP FOREIGN KEY `FK_4870AB118D9F6D38`;
ALTER TABLE dtb_order_detail DROP FOREIGN KEY `FK_58FE35738D9F6D38`;
ALTER TABLE dtb_shipment_item DROP FOREIGN KEY `FK_57C3C0398D9F6D38`;

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

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

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

DELETE FROM dtb_shipping WHERE order_id NOT IN( SELECT order_id FROM dtb_order );
DELETE FROM dtb_mail_history WHERE order_id NOT IN( SELECT order_id FROM dtb_order );
DELETE FROM dtb_order_detail WHERE order_id NOT IN( SELECT order_id FROM dtb_order );
DELETE FROM dtb_shipment_item WHERE order_id NOT IN( SELECT order_id FROM dtb_order );

ALTER TABLE dtb_shipping ADD CONSTRAINT FK_2EBD22CE8D9F6D38 FOREIGN KEY (order_id) REFERENCES dtb_order (order_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_mail_history ADD CONSTRAINT FK_4870AB118D9F6D38 FOREIGN KEY (order_id) REFERENCES dtb_order (order_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_order_detail ADD CONSTRAINT FK_58FE35738D9F6D38 FOREIGN KEY (order_id) REFERENCES dtb_order (order_id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_shipment_item ADD CONSTRAINT FK_57C3C0398D9F6D38 FOREIGN KEY (order_id) REFERENCES dtb_order (order_id) ON DELETE RESTRICT ON UPDATE RESTRICT;

2 dtb_order_detail

外部キー制約なし

(1)空にする。

(2)sqlインポート

3 dtb_shipment_item

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

dtb_shipping
・Constraint properties→「FK_57C3C0394887F3F8」
・カラム→「shipping_id」

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

ALTER TABLE dtb_shipment_item DROP FOREIGN KEY `FK_57C3C0394887F3F8`;

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

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

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

DELETE FROM dtb_shipment_item WHERE shipping_id NOT IN( SELECT shipping_id FROM dtb_shipping );

ALTER TABLE dtb_shipment_item ADD CONSTRAINT FK_57C3C0394887F3F8 FOREIGN KEY (shipping_id) REFERENCES dtb_shipping (shipping_id) ON DELETE RESTRICT ON UPDATE RESTRICT;

4 dtb_shipping

外部キー制約あり。

dtb_shipment_item
① Constraint properties→「FK_A0C8C3ED4887F3F8」
② カラム→「shipping_id」

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

ALTER TABLE dtb_shipment_item DROP FOREIGN KEY `FK_57C3C0394887F3F8`;

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

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

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

DELETE FROM dtb_shipment_item WHERE shipping_id NOT IN( SELECT shipping_id FROM dtb_shipping );

ALTER TABLE dtb_shipment_item ADD CONSTRAINT FK_57C3C0394887F3F8 FOREIGN KEY (shipping_id) REFERENCES dtb_shipping (shipping_id) ON DELETE RESTRICT ON UPDATE RESTRICT;