Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » MySQL » Как восстановить из бэкапа определенные новости?

Как восстановить из бэкапа определенные новости?


     26.08.2016    Все вопросы » MySQL    787

вопрос
Сегодня обнаружил, что у меня с сайта из-за ошибки на протяжении многих месяцев удалялись некоторые новости (при редактировании случайно нажимал на функцию "удалить новость определенного числа"). Просто объединение баз не подходит, т.к. в бэкапе есть куча новостей, комментов и т.д., которые удалялись намеренно. Как бы мне восстановить определенные, заведомо известные новости?

Ответа пока нет


7 комментариев

dlnator37
Юзер

dlnator37 - 27 августа 2016 01:19 -

Нужно скопировать в БД таблицы dle_post и dle_post_extras с помощью запроса, указав в нём id нужных новостей?
Помогите сформулировать такой запрос

Апельсин
Юзер

Апельсин - 27 августа 2016 03:41 -

Что бы не платить за данную работу, так как я больше чем уверен, что придётся, могу посоветовать другой вариант. Работы на пол дня, ибо внимательно нужно всё делать.

Бери и делай бэкап своей базы. Потом бери и в этот бэкап дописывай строки в dle_post и dle_post_extra, как ты сам написал выше. Тем самым ты создашь нужную тебе базу. А после этого просто закинь базу в папку backup и импортируй её через админку. Ну суть уловил, что сделать нужно? Пути к картинкам должен знать так же. Если новости были удалены, то всё потёрлось там у тебя.

dlnator37
Юзер

dlnator37 - 27 августа 2016 04:07 -

Можно же объединять базы, не? Чтобы руками не вписывать, я планирую удалить все ненужные таблицы, а из dle_post и dle_post_extra удалить строки новостей, которые сейчас есть на сайте. А далее соединить базы. Либо же сразу импортировать по определенному id (если это возможно). Только вот не знаю, каким запросом можно удалить все поля, кроме полей с определенным id.

Ойбек
Юзер

Ойбек - 27 августа 2016 06:48 -

Сначала сделай Бекап свою базу
После чего сделай экспорт свою базу куда нибудь, Открой его Notepad++
Найди в базе строку: dle_post
там будет
INSERT INTO `dle_post` (`id`, `autor`, `date` и дальше что то

после него там будет строки
(5, 'Ойбек', '2016-08-06 16:45:22', '<br /><a class=\\"highslide\\" href=\\"http://site.local/uploads/posts/2016-08/1470915056_photo_2016-08-08_14-38-06.jpg\\" и ещё что то там

Вот после этих строк ты от старой базы перенеси точно такие же данные и сохрани базу.
Сделай Импорт и всё должно заработать

После импорта не забудь очистить кеш и лог.

Про бекапы не забудь!

dlnator37
Юзер

dlnator37 - 27 августа 2016 11:13 -

Ну это долго и муторно, руками. Удалил из бэкапа все новости через запрос mysql, добавив в исключение нужные, сделал экспорт, затем эти таблицы импортировал в текущую базу. Тривиальный запрос в базу, а в гуглах его не найти, пришлось самому думать. Проблема решена.

Апельсин
Юзер

Апельсин - 27 августа 2016 14:50 -

Иначе никак, если хочешь качественно. Тебе ответили. Я написал как сделать, то же самое тебе написали в комменте выше)

dlnator37
Юзер

dlnator37 - 28 августа 2016 07:27 -

Я вас немного не понимаю, проблема же уже решена. Даже поделился своим путём решения, кратко расписав, что да как. Уважаю фрилансеров, но для данной задачи их услуги совершенно не нужны. Загвоздка была лишь в составлении нужного запроса к базе. Пару абзацев учебника по базам эту проблему решили.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

 28.10.2013 blazer-05  MySQL
наверх