Вернуть удалённую категорию
#1
Отправлено 28 March 2016 - 07:32 AM
Подскажите, пожалуйста, можно ли вернуть категорию с товарами, которую случайно удалили ? %)
Бекап есть. Но весь его нельзя подтягивать, так как в других категориях добавилось много товаров. А вот в эту не добавляли. Может можно только эту категория с бекапа вытянуть?
Спасибо заранее
#2
Отправлено 28 March 2016 - 08:51 AM
#3
Отправлено 28 March 2016 - 11:16 AM
0. Сделать бэкап базы!Бекап есть. Но весь его нельзя подтягивать, так как в других категориях добавилось много товаров.
1. Восстановить всю (всю!) таблицу товаров из бэкапа в таблицу с именем temp (или любым другим).
2. добавить в нее из таблицы товаров все товары с отсуствующими в этой таблице productID. Таким образом получим все старые товары (на момент бэкапа) и все новые добавленные в одной таблице с правильными productID.
3. удалить таблицу товаров
4. переименовать temp в таблицу товаров.
И получите совершенно правильные товары, только с другими productID, т.к. это поле автоинкрементное. Т.е. будет потеряна вся информация там, где использовался productID товара. А это заказы, дополнительные категории, рекомендуемые товары, спецпредложения и т.д. и т.п.Выберите SQL запросы, касающиеся нужной категории, а потом через phpMyAdmin вручную выполните эти запросы
В бэкапе он и так правильный .Только DBPRFX замените на свой префикс
#4
Отправлено 28 March 2016 - 02:53 PM
И получите совершенно правильные товары, только с другими productID, т.к. это поле автоинкрементное. Т.е. будет потеряна вся информация там, где использовался productID товара. А это заказы, дополнительные категории, рекомендуемые товары, спецпредложения и т.д. и т.п.
Вот так выглядит SQL из бекапа
INSERT INTO DBPRFX_products (productID, categoryID, name, description, customers_rating, Price, in_stock, customer_votes, items_sold, enabled, brief_description, list_price, product_code, sort_order, default_picture, date_added, date_modified, viewed_times, eproduct_filename, eproduct_available_days, eproduct_download_times, weight, meta_description, meta_keywords, free_shipping, min_order_amount, shipping_freight, classID, title) values (........);
по моему это отвечает на все вопросы
#5
Отправлено 28 March 2016 - 08:22 PM
Нет. insert случится только если такого productID в таблице нет. Если есть, то будет Duplicate entry и запись не добавится. Но таки да, вероятность такого события стремится к нулю как раз в силу автоинкрементности (все новое добавленное будет с бОльшими productID).по моему это отвечает на все вопросы
Так что Вы правы - можно просто взять из текста бэкапа нужные строки и скормить их любому mySQL-менеджеру.
Не лукавьте.Вот так выглядит SQL из бекапа
Перед этим есть еще команда удаления таблицы и создания таблицы. В штатном бэкапе содержимое заливается по любому в пустую новую таблицу и там этой проблемы в принципе нет.
#6
Отправлено 29 March 2016 - 09:30 PM
Не лукавьте.Вот так выглядит SQL из бекапа
Перед этим есть еще команда удаления таблицы и создания таблицы. В штатном бэкапе содержимое заливается по любому в пустую новую таблицу и там этой проблемы в принципе нет.
DROP TABLE IF EXISTS существует только в полном экспорте базы данных. Я говорю о экспорте каталога товаров. Там просто INSERT
#7
Отправлено 30 March 2016 - 03:51 PM
Затем в дубле магазина зайти в экспорт, отметить нужную категорию, сохранить её в csv, ну а после уже на рабочем сайте импортировать на родное место.
С уважением ко всем Valentin-Kupriyanov.ru
#8
Отправлено 30 March 2016 - 05:22 PM
В CSV нет productID. После такого восстановления это будут уже другие товары (с другим ProductID), хотя и с тем же названием.сохранить её в csv