Как восстановить данные клиента из старых данных


Я удалил всех клиентов из своей системы

Теперь у меня есть старая база данных, я хочу восстановить клиентов из этой старой базы данных

Таким образом

Идентификатор клиента и данные не изменяются

Могу ли я попробовать это

SET FOREIGN_KEY_CHECKS=0;
 ALTER TABLE `customer_address_entity` AUTO_INCREMENT=1;
ALTER TABLE `customer_address_entity_datetime` AUTO_INCREMENT=1;
ALTER TABLE `customer_address_entity_decimal` AUTO_INCREMENT=1;
ALTER TABLE `customer_address_entity_int` AUTO_INCREMENT=1;
ALTER TABLE `customer_address_entity_text` AUTO_INCREMENT=1;
ALTER TABLE `customer_address_entity_varchar` AUTO_INCREMENT=1;
ALTER TABLE `customer_entity` AUTO_INCREMENT=1;
ALTER TABLE `customer_entity_datetime` AUTO_INCREMENT=1;
ALTER TABLE `customer_entity_decimal` AUTO_INCREMENT=1;
ALTER TABLE `customer_entity_int` AUTO_INCREMENT=1;
ALTER TABLE `customer_entity_text` AUTO_INCREMENT=1;
ALTER TABLE `customer_entity_varchar` AUTO_INCREMENT=1;
ALTER TABLE `tag` AUTO_INCREMENT=1;
ALTER TABLE `tag_relation` AUTO_INCREMENT=1;
ALTER TABLE `tag_summary` AUTO_INCREMENT=1;
ALTER TABLE `tag_properties` AUTO_INCREMENT=1;
ALTER TABLE `wishlist` AUTO_INCREMENT=1;


ALTER TABLE `log_customer` AUTO_INCREMENT=1;**

Затем импортируйте эти таблицы клиентов из старой базы данных**

Затем установите УСТАНОВИТЕ FOREIGN_KEY_CHECKS=1;

Это хороший и правильный способ? помоги мне?.

Author: Amit Bera, 2014-11-11

2 answers

Если вы хотите импортировать эти таблицы вместе с клиентом и его сущностями, имеющими одинаковый идентификатор, это будет хорошим способом сделать это.

Вам нужно будет убедиться, что указанные выше таблицы или пустые, прежде чем импортировать ваши старые данные, или вы получите дубликаты первичных ключей

 2
Author: Sander Mangel, 2014-11-11 06:51:02

Я совершил ту же ошибку (удалил всех клиентов) и, основываясь на ответе Сандера Мангеля, я создал для этого сценарий, предполагая, что у меня есть файл резервной копии mybackup.sql

Создайте в той же папке, что и резервная копия restore.sql с содержимым:

SET FOREIGN_KEY_CHECKS=0;
DELETE FROM `customer_address_entity`;
ALTER TABLE `customer_address_entity` AUTO_INCREMENT=1;

DELETE FROM `customer_address_entity_datetime`;
ALTER TABLE `customer_address_entity_datetime` AUTO_INCREMENT=1;

DELETE FROM `customer_address_entity_decimal`;
ALTER TABLE `customer_address_entity_decimal` AUTO_INCREMENT=1;

DELETE FROM `customer_address_entity_int`;
ALTER TABLE `customer_address_entity_int` AUTO_INCREMENT=1;

DELETE FROM `customer_address_entity_text`;
ALTER TABLE `customer_address_entity_text` AUTO_INCREMENT=1;

DELETE FROM `customer_address_entity_varchar`;
ALTER TABLE `customer_address_entity_varchar` AUTO_INCREMENT=1;

DELETE FROM `customer_entity`;
ALTER TABLE `customer_entity` AUTO_INCREMENT=1;

DELETE FROM `customer_entity_datetime`;
ALTER TABLE `customer_entity_datetime` AUTO_INCREMENT=1;

DELETE FROM `customer_entity_decimal`;
ALTER TABLE `customer_entity_decimal` AUTO_INCREMENT=1;

DELETE FROM `customer_entity_int`;
ALTER TABLE `customer_entity_int` AUTO_INCREMENT=1;

DELETE FROM `customer_entity_text`;
ALTER TABLE `customer_entity_text` AUTO_INCREMENT=1;

DELETE FROM `customer_entity_varchar`;
ALTER TABLE `customer_entity_varchar` AUTO_INCREMENT=1;

DELETE FROM `tag`;
ALTER TABLE `tag` AUTO_INCREMENT=1;

DELETE FROM `tag_relation`;
ALTER TABLE `tag_relation` AUTO_INCREMENT=1;

DELETE FROM `tag_summary`;
ALTER TABLE `tag_summary` AUTO_INCREMENT=1;

DELETE FROM `tag_properties`;
ALTER TABLE `tag_properties` AUTO_INCREMENT=1;

DELETE FROM `wishlist`;
ALTER TABLE `wishlist` AUTO_INCREMENT=1;


DELETE FROM `log_customer`;
ALTER TABLE `log_customer` AUTO_INCREMENT=1;

Затем создайте второй файл restore2.sql

SET FOREIGN_KEY_CHECKS=1;
UPDATE sales_flat_order INNER JOIN customer_entity ON sales_flat_order.customer_email = customer_entity.email SET sales_flat_order.customer_id = customer_entity.entity_id;  
UPDATE sales_flat_order_grid INNER JOIN sales_flat_order ON sales_flat_order_grid.entity_id = sales_flat_order.entity_id SET sales_flat_order_grid.customer_id = sales_flat_order.customer_id;

Затем из командной строки перейдите в папку, содержащую резервную копию, и выполните следующие действия

sed -n -e '/DROP TABLE.*`customer_address_entity`/,/UNLOCK TABLES/p' mybackup.sql > customer_address_entity.sql
sed -n -e '/DROP TABLE.*`customer_address_entity_datetime`/,/UNLOCK TABLES/p' mybackup.sql > customer_address_entity_datetime.sql
sed -n -e '/DROP TABLE.*`customer_address_entity_decimal`/,/UNLOCK TABLES/p' mybackup.sql > customer_address_entity_decimal.sql
sed -n -e '/DROP TABLE.*`customer_address_entity_int`/,/UNLOCK TABLES/p' mybackup.sql > customer_address_entity_int.sql
sed -n -e '/DROP TABLE.*`customer_address_entity_text`/,/UNLOCK TABLES/p' mybackup.sql > customer_address_entity_text.sql
sed -n -e '/DROP TABLE.*`customer_address_entity_varchar`/,/UNLOCK TABLES/p' mybackup.sql > customer_address_entity_varchar.sql
sed -n -e '/DROP TABLE.*`customer_entity`/,/UNLOCK TABLES/p' mybackup.sql > customer_entity.sql
sed -n -e '/DROP TABLE.*`customer_entity_datetime`/,/UNLOCK TABLES/p' mybackup.sql > customer_entity_datetime.sql
sed -n -e '/DROP TABLE.*`customer_entity_decimal`/,/UNLOCK TABLES/p' mybackup.sql > customer_entity_decimal.sql
sed -n -e '/DROP TABLE.*`customer_entity_int`/,/UNLOCK TABLES/p' mybackup.sql > customer_entity_int.sql
sed -n -e '/DROP TABLE.*`customer_entity_text`/,/UNLOCK TABLES/p' mybackup.sql > customer_entity_text.sql
sed -n -e '/DROP TABLE.*`customer_entity_varchar`/,/UNLOCK TABLES/p' mybackup.sql > customer_entity_varchar.sql
sed -n -e '/DROP TABLE.*`tag`/,/UNLOCK TABLES/p' mybackup.sql > tag.sql
sed -n -e '/DROP TABLE.*`tag_relation`/,/UNLOCK TABLES/p' mybackup.sql > tag_relation.sql
sed -n -e '/DROP TABLE.*`tag_summary`/,/UNLOCK TABLES/p' mybackup.sql > tag_summary.sql
sed -n -e '/DROP TABLE.*`tag_properties`/,/UNLOCK TABLES/p' mybackup.sql > tag_properties.sql
sed -n -e '/DROP TABLE.*`wishlist`/,/UNLOCK TABLES/p' mybackup.sql > wishlist.sql
sed -n -e '/DROP TABLE.*`log_customer`/,/UNLOCK TABLES/p' mybackup.sql > log_customer.sql


cat restore.sql customer_address_entity.sql customer_address_entity_datetime.sql customer_address_entity_decimal.sql customer_address_entity_int.sql customer_address_entity_text.sql customer_address_entity_varchar.sql customer_entity.sql customer_entity_datetime.sql customer_entity_decimal.sql customer_entity_int.sql customer_entity_text.sql customer_entity_varchar.sql tag.sql tag_relation.sql tag_summary.sql tag_properties.sql wishlist.sql log_customer.sql restore2.sql > restorefull.sql

mysql -u root -p mytable < restorefull.sql

rm restore.sql customer_address_entity.sql customer_address_entity_datetime.sql customer_address_entity_decimal.sql customer_address_entity_int.sql customer_address_entity_text.sql customer_address_entity_varchar.sql customer_entity.sql customer_entity_datetime.sql customer_entity_decimal.sql customer_entity_int.sql customer_entity_text.sql customer_entity_varchar.sql tag.sql tag_relation.sql tag_summary.sql tag_properties.sql wishlist.sql log_customer.sql restore2.sql restorefull.sql

Все ваши клиенты вернулись!!!

 1
Author: Memes, 2018-09-28 02:52:04