Русское сообщество fluxbb

Быстрый лёгкий надёжный форумный движок

Вы не вошли.

Объявление

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

#1 2011-05-01 12:03:04

Luca
Участник
Зарегистрирован: 2009-10-08
Сообщений: 164

Впилить удаленного пользователя

Один пользователь потребовал чтобы его удалили. Удаление было произведено, теперь он просит впилить его обратно. Сейчас его сообщения видны, но его ник неактивен. Можно ли как-то его ник оживить, чтобы он ассоциировался со всеми его минувшими сообщениями?

Offline

#2 2011-05-01 12:14:50

Visman
Administrator
Из Сибирь
Зарегистрирован: 2009-06-08
Сообщений: 2,236
Сайт

Re: Впилить удаленного пользователя

@Luca, если в таблице posts поле poster_id в его сообщениях не равно 1, то достаточно добавить его в таблицу users с этим номером.
Если же поле poster_id в его сообщениях = 1, то регистрируй его, смотри его новый номер и прописывай его во всех сообщениях этого пользователя.

З.Ы. А вообще, на фиг его с выкрутасами wink

Offline

#3 2011-05-02 21:18:51

Luca
Участник
Зарегистрирован: 2009-10-08
Сообщений: 164

Re: Впилить удаленного пользователя

Пользователя впилил по второму методу. Только почему-то теперь не верно отображается количество сообщений http://pic2net.ru/view/v/960d0f844c7beb … 69a3c7.jpg

Offline

#4 2011-05-03 04:31:12

Visman
Administrator
Из Сибирь
Зарегистрирован: 2009-06-08
Сообщений: 2,236
Сайт

Re: Впилить удаленного пользователя

Зайди в админке в плагин Not Sum и просто нажми кнопку Сохранить изменения.
Он пересчитает посты всем юзерам на форуме.

Offline

#5 2011-05-03 08:44:21

Luca
Участник
Зарегистрирован: 2009-10-08
Сообщений: 164

Re: Впилить удаленного пользователя

@Visman, спасибо, помогло!

Offline

#6 2011-06-05 20:41:31

Luca
Участник
Зарегистрирован: 2009-10-08
Сообщений: 164

Re: Впилить удаленного пользователя

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

Редактировался Luca (2011-06-05 21:41:55)

Offline

#7 2011-06-06 06:39:18

Visman
Administrator
Из Сибирь
Зарегистрирован: 2009-06-08
Сообщений: 2,236
Сайт

Re: Впилить удаленного пользователя

@Luca, в бэкапе
1. Выясни номер этого человека в users.
2. Получить все номера тем юзера (они наверняка удалены)

SELECT t.id FROM topics as t, posts as p WHERE p.poster_id=НОМЕР ЮЗЕРА AND p.id=t.first_post_id

3. удалить все темы, которые не попали в темы юзера
4. удалить все посты, которые не попали в темы юзера и не являются постами юзера, т.е. останутся не только посты этого человека, но и все посты сторонних людей из его тем
Получившиеся таблицы posts и topics слить с рабочими.

Offline

#8 2011-06-06 12:36:48

artoodetoo
Admin by chance
Зарегистрирован: 2008-09-09
Сообщений: 887
Сайт

Re: Впилить удаленного пользователя

я бы пошел "инкрементальным" путем:
- выяснил дату последнего поста в бекапе
- сохранил из актуальной базы все темы и посты с возрастом младше указанной
- восстановил из бекапа
- добавил сохраненное на втором шаге


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Offline

#9 2011-06-06 16:47:28

Freeman
Участник
Из Санкт-Петербург
Зарегистрирован: 2010-07-31
Сообщений: 128
Сайт

Re: Впилить удаленного пользователя

А я бы решил задачу непосредственно, при условии, что темы и сообщения не перенумеровывались:

  • Восстановил бы таблицу из резервной копии под другим именем.

  • Пройдя по таблицам тем и сообщений, добавил бы те сообщения и темы нужного авторства, которые отсутствуют в целевой таблице.

Проверка на присутствие делается внешним объединением или через not exists.

Offline

Подвал доски

Под управлением FluxBB. Хостинг Hostens