Skip to content

Восстановление темы зная ее ID

Как админ может восстановить тему с известным ID

если один из модераторов ее снес?

Featured Replies

1) (Средствами форума) Если У Вас нету корзины на фоурме и тд, то не как.

 

2) (Вручную) Если есть бекап БД за определенное число: выдернуть с бекапа тему, и посты с нее.

  • Author

да, корзины на тот момент не было.

 

 

А в бэкапе как ее правильно найти и восстановить?

А в бэкапе как ее правильно найти и восстановить?

Для вас самый простой вариант, это создать еще одну базу данных под mysql пользователя где находиться база форума. Базу назовем backupforum. Импортировать туда бэкап (смотрите не ошибитесь, и не импортируйте случайно бэкап в рабочую базу). Потом выполнить следующие запросы для копирования темы и постов из бэкапа в рабочую базу:

 

INSERT INTO forum.ibf_topics SELECT * FROM backupforum.ibf_topics WHERE tid=ид_удаленной_темы
INSERT INTO forum.ibf_posts SELECT * FROM backupforum.ibf_posts WHERE topic_id=ид_удаленной_темы

 

forum - заменить на название базы где находиться форум

backupforum - название базы где находится бэкап.

 

После пройти в Админцентр > НАСТРОЙКИ > Пересчет и обновление

Выполнить Ресинхронизация форумов.

Вариант для более продвинутых пользователей.

 

Если бэкап весит несколько сотен мегабайт или пару гигабайт, закачивать и развертывать его на сервере не очень удобно. Его можно развернуть на локалхосте, а сбэкапить нужные строки из бд нам поможет утилита mysqldump, которая позволяет добавлять условия в выборке.

 

1. Переходим через cmd в папку где находится mysqldump.exe

 

2. Бэкапим сперва таблицу тем

mysqldump -uЮзер -pПароль --default-character-set=cp1251 имя_базы ibf_topics --no-create-info --where="tid=ид_темы" > backup.sql

 

3. Добавляем к бэкапу сообщения темы

mysqldump -uЮзер -pПароль --default-character-set=cp1251 имя_базы ibf_posts --no-create-info --where="topic_id=ид_темы" >> backup.sql

 

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

Раз пошла такая пьянка, расскажу про еще один способ, как можно восстановить удаленную тему из бэкапа с помощью phpMyAdmin.

 

1. И так, заходим через phpMyAdmin в базу где находиться наш бэкап, и переходим на кладку SQL.

 

2f1c03807d15t.jpg

 

2. Делаем запрос для селекта нужный темы

SELECT * FROM ibf_topics WHERE tid=ид_топика

и нажимаем внизу на "Экспорт"

 

6f629e29a76et.jpg

 

3. В настройках дампа снимаем галочку с опции Структура. Все остальные настройки можно оставить по умолчанию.

Ставим галочку на "Послать" для того чтобы получить бэкап в виде файла, и нажимаем Пошел.

 

560979b153fat.jpg

 

Теперь у нас есть бэкап удаленной темы. Осталось сдампить сообщения аналогичным способом.

 

4. Переходим обратно на вкладку SQL. Выполняем запрос для выбора сообщений из таблицы ibf_posts

SELECT * FROM ibf_posts WHERE topic_id=ид_топика

Далее, как в случае с темой, нажимаем экспорт, снимаем галочку с "Структура", ставим на "Послать" и делаем бэкап.

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.