Перейти к содержимому


Вернуть удалённую категорию


  • Вы не можете ответить в тему
Сообщений в теме: 7

#1 ed.cl

    Новичок

  • Пользователи
  • Pip
  • 8 сообщений
Репутация: 0
Начинающий

Отправлено 28 March 2016 - 07:32 AM

Добрый день
Подскажите, пожалуйста, можно ли вернуть категорию с товарами, которую случайно удалили ? %)
Бекап есть. Но весь его нельзя подтягивать, так как в других категориях добавилось много товаров. А вот в эту не добавляли. Может можно только эту категория с бекапа вытянуть?

Спасибо заранее
  • 0

#2 makki

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 148 сообщений
Репутация: 7
Начинающий

Отправлено 28 March 2016 - 08:51 AM

Бэкап это SQL запросы, которые можно открыть в текстовом редакторе. Выберите SQL запросы, касающиеся нужной категории, а потом через phpMyAdmin вручную выполните эти запросы. Только DBPRFX замените на свой префикс
  • 0

#3 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 28 March 2016 - 11:16 AM

Бекап есть. Но весь его нельзя подтягивать, так как в других категориях добавилось много товаров.

0. Сделать бэкап базы!
1. Восстановить всю (всю!) таблицу товаров из бэкапа в таблицу с именем temp (или любым другим).
2. добавить в нее из таблицы товаров все товары с отсуствующими в этой таблице productID. Таким образом получим все старые товары (на момент бэкапа) и все новые добавленные в одной таблице с правильными productID.
3. удалить таблицу товаров
4. переименовать temp в таблицу товаров.

Выберите SQL запросы, касающиеся нужной категории, а потом через phpMyAdmin вручную выполните эти запросы

И получите совершенно правильные товары, только с другими productID, т.к. это поле автоинкрементное. Т.е. будет потеряна вся информация там, где использовался productID товара. А это заказы, дополнительные категории, рекомендуемые товары, спецпредложения и т.д. и т.п.

Только DBPRFX замените на свой префикс

В бэкапе он и так правильный :).
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#4 makki

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 148 сообщений
Репутация: 7
Начинающий

Отправлено 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 (........);

по моему это отвечает на все вопросы
  • 0

#5 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 28 March 2016 - 08:22 PM

по моему это отвечает на все вопросы

Нет. insert случится только если такого productID в таблице нет. Если есть, то будет Duplicate entry и запись не добавится. Но таки да, вероятность такого события стремится к нулю как раз в силу автоинкрементности (все новое добавленное будет с бОльшими productID).
Так что Вы правы - можно просто взять из текста бэкапа нужные строки и скормить их любому mySQL-менеджеру.

Вот так выглядит SQL из бекапа

Не лукавьте.
Перед этим есть еще команда удаления таблицы и создания таблицы. В штатном бэкапе содержимое заливается по любому в пустую новую таблицу и там этой проблемы в принципе нет.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#6 makki

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 148 сообщений
Репутация: 7
Начинающий

Отправлено 29 March 2016 - 09:30 PM

Вот так выглядит SQL из бекапа

Не лукавьте.
Перед этим есть еще команда удаления таблицы и создания таблицы. В штатном бэкапе содержимое заливается по любому в пустую новую таблицу и там этой проблемы в принципе нет.


DROP TABLE IF EXISTS существует только в полном экспорте базы данных. Я говорю о экспорте каталога товаров. Там просто INSERT
  • 0

#7 Valentin

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 146 сообщений
Репутация: 6
Начинающий
  • ГородШахты Ростовская область

Отправлено 30 March 2016 - 03:51 PM

а если на локале поставить shopcms используя дамп базы от оригинала, где есть нужная категория..
Затем в дубле магазина зайти в экспорт, отметить нужную категорию, сохранить её в csv, ну а после уже на рабочем сайте импортировать на родное место.
  • 0
Социально-информационный проект Nvda.ru о бесплатной программе экранного доступа Nvda для незрячих и слабовидящих.
С уважением ко всем Valentin-Kupriyanov.ru

#8 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 30 March 2016 - 05:22 PM

сохранить её в csv

В CSV нет productID. После такого восстановления это будут уже другие товары (с другим ProductID), хотя и с тем же названием.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)