Jump to content

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


Parts
 Share

Recommended Posts

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

 

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

Link to comment
Share on other sites

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

 

 

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

Link to comment
Share on other sites

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

Для вас самый простой вариант, это создать еще одну базу данных под 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 - название базы где находится бэкап.

 

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

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

Link to comment
Share on other sites

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

 

Если бэкап весит несколько сотен мегабайт или пару гигабайт, закачивать и развертывать его на сервере не очень удобно. Его можно развернуть на локалхосте, а сбэкапить нужные строки из бд нам поможет утилита 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.

Link to comment
Share on other sites

Раз пошла такая пьянка, расскажу про еще один способ, как можно восстановить удаленную тему из бэкапа с помощью 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=ид_топика

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

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...