Ошибка 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
))
1 answers
Я проверял ваш SQL-запрос, и, похоже, в нем нет ошибки или ошибки, он должен работать на интерфейсе командной строки MySQL, но, сказав это, единственное, что я могу предположить, это:
Вы запускаете свой SQL-запрос в интерфейсе phpMyAdmin SQL с помощью Включить проверку внешних ключей проверено. Обычно он находится в правом нижнем углу интерфейса SQL-запросов.
Попробуйте снять флажок , и ваш запрос должен сработать.
Примечание: Для того, чтобы сбросьте номер заказа, вы должны включить это в свой запрос, УСЕЧЬ ТАБЛИЦУ sequence_order_1 - эта таблица отвечает за генерацию идентификатора приращения или номера заказа на интерфейсе.
Надеюсь, это поможет!