Как восстановить единичную тему из старой копии базы форума?

Список разделов phpBBex 1.x (поддерживается) Поддержка 1.x

Описание: У вас проблемы с phpBBex 1.x и вам необходима помощь? Спрашивайте здесь!
Правила раздела: Одна тема — один вопрос или группа связанных вопросов. Обязательно формируйте внятный заголовок, максимально отражающий суть вопроса. Подробно описывайте проблему. Не забудьте указать версию phpBBex и какие моды установлены, по возможности добавьте скриншоты проблемы или ссылку на страницу с проблемой.
Модератор: Поддержка

Сообщение #1 rvszap » 17.10.2013, 23:31

Собственно вопрос, в том, возможно ли восстановить одну тему из старой базы и что для этого нужно сделать. А потом вернуть все в сегодняшнее число.
rvszap
Автор темы
Репутация: 6
С нами: 11 лет 8 месяцев

Сообщение #2 RuRupert » 18.10.2013, 01:17

Не очень понятно сформулирован вопрос.

Восстановить возможно, только придется повозиться немного и разобраться, где что в базе лежит. Мне кажется, вполне можно разобраться в таблицах самостоятельно, названия у них вполне логичные. Поищите таблицы с постфиксами _topics, _posts - это практически всё, что Вам понадобится. Вопрос был о восстановлении темы - она была удалена вместе с сообщениями? Если да, то придётся восстанавливать и то и другое. Наиболее неочевидная вещь - это изменение времени сообщений, это время в базе хранится не в формате гг:дд:чч:мм (есть там такой параметр post_time у каждого поста). Но тоже легко решается - достаточно найти в базе сообщения с похожими по времени датами и взять числа оттуда. Хотя не понятно, что подразумевалось под словами "А потом вернуть все в сегодняшнее число."

Мне кажется, проще будет не ковыряться в базе, а выгрузив копию базы на локалку, взять оттуда нужные данные - название темы, авторов, посты и создать их точные копии на работающем форуме от лица админа, а потом поменять авторство темы и сообщений. Получится копия того что было удалено, только с сегодняшним числом. Если нужно что б было в точности как до удаления - придётся лезть в базу и руками "состаривать" восстановленные посты и тему. Задача чуть-чуть усложнится, если в удаленной теме были сообщения с вложениями.

p.s. Рекомендую подождать ответов от гуру на свой вопрос, лучше когда есть несколько советов :smile:
RuRupert M
Репутация: 61
С нами: 11 лет 9 месяцев

Сообщение #3 rvszap » 18.10.2013, 01:23

RuRupert:Хотя не понятно, что подразумевалось под словами "А потом вернуть все в сегодняшнее число."
Спасибо за ответ. Я имел ввиду, что если просто подлить базу двухдневной давности, где есть нужная мне тема, то исчезнут данные за последние два дня, что не желательно. Вот и получается, что нужно просто из старой базы вытащить эту одну тему, а как не знаю.
rvszap
Автор темы
Репутация: 6
С нами: 11 лет 8 месяцев

Сообщение #4 RuRupert » 18.10.2013, 12:06

Я Вам предложил самый простой вариант, если удаленная тема не очень большая, можно вручную восстановить прямо на работающем форуме - и тему и сообщения от лица админа, поменяв после этого авторство постов - пользователи их писавшие ведь никуда не делись с форума? это делается за два клика из панели модератора. Останется только залезть в базу и поменять даты создания сообщений на те, что были в удаленной теме. Получится, чем больше была удаленная тема, тем больше с ней будет возни т.к. время придется менять у каждого сообщения темы, что бы привести к старому виду.

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

Хотя может быть всё, что я насоветовал - кажется написанным на китайском языке? :smile:
RuRupert M
Репутация: 61
С нами: 11 лет 9 месяцев

Сообщение #5 VEG » 18.10.2013, 23:42

Восстановить возможно. Но понадобятся навыки работы с БД. Либо вариант, приведённый RuRupert попробуйте.

Вариант с копированием темы через базу:
1. Залейте старый дамп базы с нужной темой в другую БД
2. В таблице phpbb_topics найдите вашу тему, запомните её topic_id
3. Выполните запрос, подставив вместо 123 ваш topic_id:
Код: Выделить всё
SELECT * phpbb_posts WHERE topic_id = 123
4. Ну а теперь нужно перенести в базу вашего форума строку темы из phpbb_topics и выведенные посты из phpbb_posts
5. Сразу скажу, что если у вас в этом нет опыта, в базу рабочего форума не лазьте, делайте всё на локальной копии форума, иначе рискуете сделать что-то не так и всё потерять
VEG M
Администратор
Аватара
Откуда: Finland
Репутация: 1668
С нами: 12 лет 7 месяцев

Сообщение #6 rvszap » 19.10.2013, 00:15

Капец. Та ну ее ту тему. :hi: :smile:, ну может людям эта информация будет полезна.
rvszap
Автор темы
Репутация: 6
С нами: 11 лет 8 месяцев

Сообщение #7 dipol » 03.05.2015, 00:37

Эээ )) снекрофилю. Нерадивый модератор грохнул тему пользователя. Тема и сам пост имеются в наличии (те это все есть в админке).

Осталась ссылка на этот пост такого вида: http://forum-33.ru/viewtopic.php?p=2780#p2780

Собственно если пользователь повторно создаст тему и пост (!!! Никто пока ничего не писал еще), есть возможность присвоить теже идентификаторы этой теме и посту? Т.к. ссылка уже расползлась, а бэкап каждые 3 мин не делается.

Заранее спасибо.

ПС - надо будет типа КОРЗИНЫ что ли сделать для модеров ))

*****

upd ))

1. залез в БД
2. нашел номер нового поста post_id=2781 b и заменил его на предыдущий номер post_id=2780

Изображение

3. И еще в паре мест поменял. Чтобы там на главной нормальная ссылка была и в профиле пользователя по поиску его сообщений.

Все пока стало нормально. )) вроде :biggrin:
Последний раз редактировалось dipol 03.05.2015, 02:09, всего редактировалось 1 раз.
dipol M
Аватара
Репутация: 21
С нами: 9 лет 11 месяцев

Сообщение #8 Sumanai » 03.05.2015, 01:23

Нужно было перед добавлением уменьшить счётчик auto_increment таблиц постов и топиков до нужного.
dipol:ПС - надо будет типа КОРЗИНЫ что ли сделать для модеров ))
В 3.1 это есть. На 3.0 есть мод, ищите в моих темах, я адаптировал.
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 9 месяцев

Сообщение #9 dipol » 03.05.2015, 02:08

Sumanai:В 3.1 это есть. На 3.0 есть мод, ищите в моих темах, я адаптировал.
У меня пока phpbbex 1.8.0 еще стоит. Пока создал скрытый "Служебный раздел" для админов и модеров и там отдельно Архив-Корзина, вот на случай когда еще не понятно удалить или нет, но в общий доступ не светить. Ну или для принятия коллективного решения административно-модерского состава относительно какой спорной темы.
dipol M
Аватара
Репутация: 21
С нами: 9 лет 11 месяцев


Вернуться в Поддержка 1.x



cron