В настоящее время я делаю много тестов в Magento, чтобы я мог с ним ознакомиться. К сожалению, база данных чрезвычайно перегружена моими тестами. Я хочу очистить базу данных, чтобы я мог начать все сначала. Это значит делать следующее:
- Очистка всех продуктов
- Очистка всех атрибутов
- Очистка всех наборов атрибутов
- Очистка всех категорий
- Очистка всех заказов, отгрузок, транзакций и т. Д.
Я нашел сообщение на форумах Magento для очистки продуктов, которое является следующим SQL:
SET FOREIGN_KEY_CHECKS = 0;
TRUNCATE TABLE `catalog_product_bundle_option`;
TRUNCATE TABLE `catalog_product_bundle_option_value`;
TRUNCATE TABLE `catalog_product_bundle_selection`;
TRUNCATE TABLE `catalog_product_entity_datetime`;
TRUNCATE TABLE `catalog_product_entity_decimal`;
TRUNCATE TABLE `catalog_product_entity_gallery`;
TRUNCATE TABLE `catalog_product_entity_int`;
TRUNCATE TABLE `catalog_product_entity_media_gallery`;
TRUNCATE TABLE `catalog_product_entity_media_gallery_value`;
TRUNCATE TABLE `catalog_product_entity_text`;
TRUNCATE TABLE `catalog_product_entity_tier_price`;
TRUNCATE TABLE `catalog_product_entity_varchar`;
TRUNCATE TABLE `catalog_product_flat_1`;
TRUNCATE TABLE `catalog_product_link`;
TRUNCATE TABLE `catalog_product_link_attribute`;
TRUNCATE TABLE `catalog_product_link_attribute_decimal`;
TRUNCATE TABLE `catalog_product_link_attribute_int`;
TRUNCATE TABLE `catalog_product_link_attribute_varchar`;
TRUNCATE TABLE `catalog_product_link_type`;
TRUNCATE TABLE `catalog_product_option`;
TRUNCATE TABLE `catalog_product_option_price`;
TRUNCATE TABLE `catalog_product_option_title`;
TRUNCATE TABLE `catalog_product_option_type_price`;
TRUNCATE TABLE `catalog_product_option_type_title`;
TRUNCATE TABLE `catalog_product_option_type_value`;
TRUNCATE TABLE `catalog_product_super_attribute_label`;
TRUNCATE TABLE `catalog_product_super_attribute_pricing`;
TRUNCATE TABLE `catalog_product_super_attribute`;
TRUNCATE TABLE `catalog_product_super_link`;
TRUNCATE TABLE `catalog_product_enabled_index`;
TRUNCATE TABLE `catalog_product_website`;
TRUNCATE TABLE `catalog_product_relation`;
TRUNCATE TABLE `catalog_category_product_index`;
TRUNCATE TABLE `catalog_category_product`;
TRUNCATE TABLE `cataloginventory_stock_item`;
TRUNCATE TABLE `cataloginventory_stock_status`;
TRUNCATE TABLE `cataloginventory_stock_status_idx`;
TRUNCATE TABLE `cataloginventory_stock`;
TRUNCATE TABLE `core_url_rewrite`;
INSERT INTO `catalog_product_link_type`(`link_type_id`,`code`) VALUES (1,'relation'),(2,'bundle'),(3,'super'),(4,'up_sell'),(5,'cross_sell');
INSERT INTO `catalog_product_link_attribute`(`product_link_attribute_id`,`link_type_id`,`product_link_attribute_code`,`data_type`) VALUES (1,2,'qty','decimal'),(2,1,'position','int'),(3,4,'position','int'),(4,5,'position','int'),(6,1,'qty','decimal'),(7,3,'position','int'),(8,3,'qty','decimal');
INSERT INTO `cataloginventory_stock`(`stock_id`,`stock_name`) VALUES (1,'Default');
TRUNCATE TABLE `catalog_product_entity`;
SET FOREIGN_KEY_CHECKS = 1;
Мне нужно то же самое для других упомянутых. К сожалению, я не знаю, какие таблицы содержат разные данные, иначе я бы сделал это сам. Я также не хочу случайно очищать неправильные таблицы. Я надеюсь, что вы можете помочь мне!
magento-1.7
database
Глубоко заморожены
источник
источник
core_config_data
) и просто начали заново?Ответы:
Для заказов
Вы можете использовать эту функцию для удаления наборов атрибутов.
И искать эту таблицу, чтобы удалить атрибут
Проверьте
eav_attribute
столбец,is_user_defined
чтобы вы могли получить представление.источник
Вы можете просто очистить всю базу данных, и Magento снова запустит все свои сценарии установки / обновления / данных при следующей загрузке страницы. Это «сбросит настройки» Magento и уничтожит все ваши изменения.
Хорошей привычкой является создание модуля, который содержит все ваши основные настройки магазина в скриптах установки / обновления / данных. Преимущество этого заключается в том, что эти настройки хранятся в системе контроля версий, и все различные веб-сайты, которые у вас есть для магазина (производство, постановка, приемочное тестирование и т. Д.), Будут обновляться.
Если над сайтом работает несколько человек, мы даже создаем новый модуль для каждой группы настроек, чтобы при объединении кода версии не конфликтовали.
В вашем случае я бы создал модуль, который устанавливает все параметры, которые вы хотите сохранить. Если вы сотрете базу данных, Magento будет полностью чистым, включая нужные вам настройки!
Вы можете взглянуть на сценарии установки / обновления ядра Magento, чтобы увидеть, как Magento устанавливает свои начальные данные / настройки.
источник
Если вам ничего не нужно - просто очистите всю БД и выполните чистую переустановку.
Запуск массовых усечений всегда беспокоит меня какими-либо потенциальными длительными последствиями разорванных ключевых отношений.
Быстрая очистка БД
Используя этот скрипт ,
Это полностью опустошит и удалит каждую таблицу в базе данных. Не используйте его , если вам нужно , чтобы сохранить что - нибудь .
источник
До запуска нового веб-сайта Magento eCommerce на этапе разработки вам всегда нужно будет проводить тестирование, а для этого потребуется создание тестовых заказов и клиентов, чтобы убедиться, что все процессы работают правильно и так, как вы ожидаете.
Это часто может привести к тому, что в системе останется множество тестовых данных, которые вам не понадобятся после запуска сайта. Magento известен тем, что он вставляет данные в несколько таблиц базы данных, поэтому мы предоставили нижеприведенный SQL-скрипт, который удалит все эти данные из вашей базы данных Magento (и сбросит счетчики приращений для продаж, счетов, клиентов и доставки). Это было проверено и подтверждено работой на версиях Magento с 1.4.0.1 до 1.9.0.1.
источник
Если вы работаете с EE, вам также следует урезать таблицы перезаписи URL-адресов предприятия, поскольку они не имеют ограничений по внешнему ключу, а при импорте данных (но без явной установки URL-адресов) адреса старых продуктов будут связаны с вашими новыми импортированными. продукты.
источник
Одна вещь, которую никто не упомянул, это очистка налоговых таблиц. В противном случае вы получите повторяющиеся записи идентификатора заказа в таблице налогов (когда вы снова разместите заказы с начальным идентификатором заказа, у вас будет один и тот же идентификатор, появляющийся несколько раз). Несколько элементов будут отображаться в счетах / напоминаниях в виде нескольких позиций как на стороне администратора, так и на стороне клиента. После тестирования / очистки с использованием методов, описанных в вышеприведенных публикациях (и без очистки таблиц налогов), через некоторое время у меня появилось 10 различных статей налога для одного заказа.
Примечание: налог был / все еще взимается правильно, но в записках и счетах он показывал все элементы. Очень запутанно, если клиент увидит это.
Итак, чтобы добавить к вышесказанному:
И для хорошей меры:
источник
У вас должна быть отдельная база данных для тестов. Смотрите рамки теста magento. Все идеи по очистке БД после тестов неверны.
источник
Я установил репозиторий для поддержки простых сценариев SQL, которые нужно запустить перед запуском нового сайта Magento. Пока они могут помочь:
https://github.com/ccondrup/mage-reset
Помогите улучшить их!
источник
ccdata_empty_testdata
|| Это может быть я, но в остальном отличный сценарий !!!Просто мои 2 цента ...
Вместо того, чтобы выяснить, что удалять, и только осознав, что я пропустил позже, я запускаю несколько виртуальных машин и использую снимки на разных этапах, плюс у меня есть два отдельных сайта - один живой и один тестовый.
Тогда легко иметь скрипт для «восстановления» теста из живого, когда он мне нужен. Кроме того, если у клиента есть доступ к тестовой системе, он также может поиграть с ней, прежде чем делать что-либо с живыми операциями - не нужно восстанавливать данные из резервной копии и терять заказы и другие изменения в процессе ( хотя это действительно проверяет вашу стратегию резервного копирования). . )
Я думаю, что это намного лучше и "безопаснее", чем запуск специального (устаревшего?) Скрипта для удаления (слишком много?) Материала ...
(Также не стесняйтесь понижать это, поскольку я пока не могу комментировать!)
источник
MYSQL Удалите и создайте БД, затем добавьте привилегии пользователя и пользователя-администратора magento.
Добавить пользователя Magento admin:
источник
Основываясь на ответе Муфаддала, я подготовил запрос для очистки порядка и связанных данных в Magento 2.2.
источник
Просто получите вашу базу данных phpMyadmin и затем откройте таблицу,
sales_flat_order
а затем просто удалите данные из этой таблицы, и ваши тестовые заказы будут очищены. Нет необходимости в каком-либо коде, командах или расширениях. прохладно.источник
Это поздний ответ, но он может быть полезен.
Я занимаюсь разработкой сайта для электронной коммерции на основе Magento 1.7 и склоняюсь к TDD.
Я думаю, что мы не должны беспокоиться об очистке базы данных вручную, пока мы можем использовать Magento
beginTransaction
иrollback
методы.Вот пример
Этот ответ вдохновлен этим ответом Magento , посетите его для дальнейшего чтения.
источник