Как восстановить данные клиента из старых данных
Я удалил всех клиентов из своей системы
Теперь у меня есть старая база данных, я хочу восстановить клиентов из этой старой базы данных
Таким образом
Идентификатор клиента и данные не изменяются
Могу ли я попробовать это
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;
Это хороший и правильный способ? помоги мне?.
2 answers
Если вы хотите импортировать эти таблицы вместе с клиентом и его сущностями, имеющими одинаковый идентификатор, это будет хорошим способом сделать это.
Вам нужно будет убедиться, что указанные выше таблицы или пустые, прежде чем импортировать ваши старые данные, или вы получите дубликаты первичных ключей
Я совершил ту же ошибку (удалил всех клиентов) и, основываясь на ответе Сандера Мангеля, я создал для этого сценарий, предполагая, что у меня есть файл резервной копии 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
Все ваши клиенты вернулись!!!