[Помощь] Тотальная очистка базы

Статус
В этой теме нельзя размещать новые ответы.

Kosiak

Гуру форума
Регистрация
12 Сен 2006
Сообщения
627
Реакции
75
При переезде на версию 3.0 хочется почистить базу от накопившегося в ней с годами мусора, как от различных хаков, так и от мусора пользователей (и спаммеров).
Идея такая:
- удалить все пользовательские подписи, в котрых содержится хотя бы намёк на ссылки
- удалить сайты пользователей из профиля
- попробовать удалить (опционально) вообще все внешние ссылки (в связи с новыми алгоритмами Google nofollow стал неактуален).
- удалить все таблицы и поля, которых не должно быть в оригинальном движке ipb 2.3 (очистка от модов)
 
По поводу удаления ссылок в сообщениях/профилях, можно сделать запрос типа такого, соответственно, для каждой таблицы:
PHP:
UPDATE ipbposts SET post=REPLACE(post, 'www.address.com', '***');
Что касается корректного обновления, вот можно сделать так:

1. Делаем резервные копии всех файлов старого форума, а также полный дамп БД старого форума.

2. Удаляем все из корневой папки, кроме файла conf_global.php

3. Заливаем чистый форум IPB на это место

4. Запускаем из веб файл /upgrade/upgrade.php

5. Запускаем из веб файл /upgrade/index.php

6. Заходим в админку, дальше LOOK & FEEL, дальше удаляем все кроме Default.

Теперь необходимо привести в порядок обновленную БД.

1. Необходимо рядом поставить еще один абсолютно чистый IPB форум с отдельной БД. Ставим.

2. Мы имеем сейчас 2 БД, одну неправильную но с данными, одну правильную но без данных. Необходимо синхронизировать эти 2 БД.

3. Качаем программу MySQL DB Comparer, запускаем, создаем новый проект, где указываем в качестве первой БД – БД чистого IPB без данных, в качестве второй БД – БД нашу обновленную БД. Запускаем.

4. Слева зеленым выделены таблицы которых нет в чистой IPB и которые мы можем смело удалять в своей обновленной БД, например с помощью PhpMyAdmin. Удаляем.

5. Дальше справа, отобразились различия в БД, которые нужно устранить(удаление столбцов в таблицах, их изменение), нажимаем Execute All Scripts, т.е. налаживаем изменения.

6. Все, мы привели обновленную БД в порядок, готовую к установке новых модификаций под IPB.
 
а как удалить все ненужные таблицы в базе данных от модов и оставить девственную базу данных?
 
UPDATE ipbposts SET post=REPLACE(post, 'www.address.com', '***');
Это если мы знаем адрес. А я предлагаю удалить все ссылки. Тут значит маска какая-то быть должна. Типа: httр://* но вот как храняться ссылки в подписях в базе сейчас не вспомню...

Что касается корректного обновления, вот можно сделать так:
Жутковатая метода :) Но что-то в этом есть...

5. Дальше справа, отобразились различия в БД, которые нужно устранить(удаление столбцов в таблицах, их изменение), нажимаем Execute All Scripts, т.е. налаживаем изменения.
Про таблицы это понятно - я их и на глаз удалить могу, а вот с полями - это проблема... Можно конечно и так попробовать, но ошибиться тут вполне можно и про ошибку узнать не сразу...
Автоматическое бы решение - скрипт, который с дампом работает...
Было раньше решение при апгрейде. Скрипт, который вычищал базу. А вот для новой версии найти не могу никак :(
 
а как удалить все ненужные таблицы в базе данных от модов и оставить девственную базу данных?
Читай пост выше, там это написано.

Это если мы знаем адрес. А я предлагаю удалить все ссылки. Тут значит маска какая-то быть должна. Типа: httр://* но вот как храняться ссылки в подписях в базе сейчас не вспомню...
Ну даа, надо будет как-то несколько запросов давать, используя маски, вроде http:// www. и т.п. А в подписях ссылки хранятся, насколько я понимаю, также. Таблица, если не ошибаюсь, ipbusers что-ли.

Про таблицы это понятно - я их и на глаз удалить могу, а вот с полями - это проблема... Можно конечно и так попробовать, но ошибиться тут вполне можно и про ошибку узнать не сразу...
Автоматическое бы решение - скрипт, который с дампом работает...
Было раньше решение при апгрейде. Скрипт, который вычищал базу. А вот для новой версии найти не могу никак
Так я про это и пишу :) Сначала удаляем отсутствующие таблицы, при сравнении с чистой базой, а затем уже исправляем поля - п.5 )
Я таким образом обновлялся с 1.3 до 2.x Все сработало правильно и база была вычищена, различий не осталось.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху