Ошибка Magento 2.3 при удалении всех тестовых данных из базы данных


Мы находимся в процессе перехода на Magento 2.3, но нам необходимо удалить все тестовые данные из базы данных и сбросить все идентификаторы приращения обратно на 1. Возникли некоторые проблемы с удалением всей информации о заказе:

SET FOREIGN_KEY_CHECKS = 0;

TRUNCATE TABLE `gift_message`;
TRUNCATE TABLE `quote`;
TRUNCATE TABLE `quote_address`;
TRUNCATE TABLE `quote_address_item`;
TRUNCATE TABLE `quote_id_mask`;
TRUNCATE TABLE `quote_item`;
TRUNCATE TABLE `quote_item_option`;
TRUNCATE TABLE `quote_payment`;
TRUNCATE TABLE `quote_shipping_rate`;
TRUNCATE TABLE `reporting_orders`;
TRUNCATE TABLE `sales_bestsellers_aggregated_daily`;
TRUNCATE TABLE `sales_bestsellers_aggregated_monthly`;
TRUNCATE TABLE `sales_bestsellers_aggregated_yearly`;
TRUNCATE TABLE `sales_creditmemo`;
TRUNCATE TABLE `sales_creditmemo_comment`;
TRUNCATE TABLE `sales_creditmemo_grid`;
TRUNCATE TABLE `sales_creditmemo_item`;
TRUNCATE TABLE `sales_invoice`;
TRUNCATE TABLE `sales_invoiced_aggregated`;
TRUNCATE TABLE `sales_invoiced_aggregated_order`;
TRUNCATE TABLE `sales_invoice_comment`;
TRUNCATE TABLE `sales_invoice_grid`;
TRUNCATE TABLE `sales_invoice_item`;
TRUNCATE TABLE `sales_order`;
TRUNCATE TABLE `sales_order_address`;
TRUNCATE TABLE `sales_order_aggregated_created`;
TRUNCATE TABLE `sales_order_aggregated_updated`;
TRUNCATE TABLE `sales_order_grid`;
TRUNCATE TABLE `sales_order_item`;
TRUNCATE TABLE `sales_order_payment`;
TRUNCATE TABLE `sales_order_status_history`;
TRUNCATE TABLE `sales_order_tax`;
TRUNCATE TABLE `sales_order_tax_item`;
TRUNCATE TABLE `sales_payment_transaction`;
TRUNCATE TABLE `sales_refunded_aggregated`;
TRUNCATE TABLE `sales_refunded_aggregated_order`;
TRUNCATE TABLE `sales_shipment`;
TRUNCATE TABLE `sales_shipment_comment`;
TRUNCATE TABLE `sales_shipment_grid`;
TRUNCATE TABLE `sales_shipment_item`;
TRUNCATE TABLE `sales_shipment_track`;
TRUNCATE TABLE `sales_shipping_aggregated`;
TRUNCATE TABLE `sales_shipping_aggregated_order`;
TRUNCATE TABLE `tax_order_aggregated_created`;
TRUNCATE TABLE `tax_order_aggregated_updated`;

ALTER TABLE `sales_order` AUTO_INCREMENT=1;

SET FOREIGN_KEY_CHECKS = 1;

Выдает следующую ошибку SQL:

УСЕЧЬ ТАБЛИЦУ quote

Невозможно усечь таблицу, на которую ссылается ограничение внешнего ключа (m2.quote_address, ОГРАНИЧЕНИЕ QUOTE_ADDRESS_QUOTE_ID_QUOTE_ENTITY_ID ССЫЛКИ НА ВНЕШНИЙ КЛЮЧ (quote_id) m2.quote (entity_id))

Author: Community, 2019-03-01

1 answers

Я проверял ваш SQL-запрос, и, похоже, в нем нет ошибки или ошибки, он должен работать на интерфейсе командной строки MySQL, но, сказав это, единственное, что я могу предположить, это:

Вы запускаете свой SQL-запрос в интерфейсе phpMyAdmin SQL с помощью Включить проверку внешних ключей проверено. Обычно он находится в правом нижнем углу интерфейса SQL-запросов.
Попробуйте снять флажок , и ваш запрос должен сработать.

Примечание: Для того, чтобы сбросьте номер заказа, вы должны включить это в свой запрос, УСЕЧЬ ТАБЛИЦУ sequence_order_1 - эта таблица отвечает за генерацию идентификатора приращения или номера заказа на интерфейсе.

Надеюсь, это поможет!

 2
Author: fmsthird, 2019-03-03 20:10:48