Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
f2065

Надо слить две базы в единый форум

Recommended Posts

Есть два форума, оба доведены до версии 3.4.9, надо их слить в один.

При помощи IP Converters это вроде бы успешно получилось, но…

 

 

1. Не очень понятно что происходит с одноимёнными пользователями. В принципе большинство одноимённых пользователей - реально один пользователь и их надо тоже объединять.

Но наверняка есть и разные одноимённые пользователи, и их объединять нельзя.

IP Converters очевидно объединяет пользователей по email, но как он поступает если имя одинаковое но email разный?

 

 

2. В постах было много URL-ссылок на соседние топики/посты/пользователей - старый_форум/index.php?showtopic=XXXXX&p=YYYYY, showuser=ZZZZZ, и т.п.

При переносе второго форума в первый - ID постов и пользователей стали разумеется новые (т.к. такие номера уже были заняты в первой базе), но в постах - все ссылки остались на старые адреса со старыми ID.

Домен то я могу в ссылках изменить при помощи поиска и замены в SQL-дампе, но вот изменить старые ID на новые - я не представляю как.

Что делать?

 

Если при переносе индексы во всех ID постов/юзеров увеличиваются линейно и в том же порядке - то есть мысль написать программу которая находит в перенесённой части базы все URL-ссылки на старые ID и увеличивает их… Но наверняка ведь есть какие-то готовые решения?

Share this post


Link to post
Share on other sites

Не очень понятно что происходит с одноимёнными пользователями

Смотрите логи в папке cache. Название файла начинается с converter_error_log_

 

2. Данные есть в таблицах, названия которых начинаются с conv_.

  • Upvote 1

Share this post


Link to post
Share on other sites
2. Данные есть в таблицах, названия которых начинаются с conv_.
Да, есть там это. Запрос типа SELECT ipb_id FROM b_conv_link_topics WHERE foreign_id=старый_ID - выводит новый ID топика и т.п.

 

А есть какие-то готовые инструменты для правки всех ID в ссылках на посты/топики/пользователей?

Раз в БД эти таблицы есть - то очевидно их кто-то использует?

Share this post


Link to post
Share on other sites

А есть какие-то готовые инструменты для правки всех ID в ссылках на посты/топики/пользователей?

Не встречал.

Раз в БД эти таблицы есть - то очевидно их кто-то использует?

В папке Tools, что идет с конвертерами, есть скрипты-редиректы для различных cms

Share this post


Link to post
Share on other sites
Не встречал.
А как же люди сливают два форума в один? Так и оставляют кривые ссылки в постах перенесённых со старого форума? Ведь практически на любом форуме есть URL-ссылки на посты…

 

В папке Tools, что идет с конвертерами, есть скрипты-редиректы для различных cms
Я не очень понимаю как эти скрипты использовать, куда их надо подключать и как…

Но главное - я там не вижу сриптов для самой IPB. Там всё для других систем (Links - vBulletin 5, Links - XenForo, Links - phpBB и т.п.), а у меня то оба форума на IPB.

Edited by f2065

Share this post


Link to post
Share on other sites

А как же люди сливают два форума в один?

Нужно у них спросить.

Может устанавливают реврайты в htaccess, может отлавливают ссылки в php-скриптах, может на старом форуме делают редирект на php-файл на новом, где проверяют ссылки.

 

Основная задача конвертера - преобразование форума на платформе, отличной от ipboard, в ipboard.

Вот свежий пример http://ipbskins.ru/forum/topic13638.html/. Кто виноват, что ips не подумали про ваши ссылки в постах :)

Share this post


Link to post
Share on other sites
2. Данные есть в таблицах, названия которых начинаются с conv_.
А там я что-то не вижу ID пользователей… Только ID постов, тем, и вроде бы ЛС.

Ничего похожего на ID пользователей нет.

 

И как править в таком случае ссылки вида /showuser.php ?

 

Разве что превращать на исходном форуме их в тег MEMBER, но что-то он не прижился да и у него очевидно проблема будет если пользователь переименуется… Вобщем это путь не подходит. А более я что-то не вижу решений (кроме как вообще удалить все URL index.php?showuser=[01234567890]+ на добавляемом форуме до слияния).

Share this post


Link to post
Share on other sites
И как править в таком случае ссылки вида /showuser.php

Только скриптом. Определить новый id пользователя можно и по дополнительным признакам - никнейм, почта. Т.е. парсите ссылку регуляркой, определяете старый id, по нему, в таблице из старой базы выбираете данные пользователя, ищете их в новой базе, генерите ссылку, делаете замену. Это не так сложно как кажется. :)

Share this post


Link to post
Share on other sites

А там я что-то не вижу ID пользователей… Только ID постов, тем, и вроде бы ЛС.

Ничего похожего на ID пользователей нет.

SELECT * FROM conv_link WHERE type='members';

  • Upvote 1

Share this post


Link to post
Share on other sites

А вот все ID аттачей при конвертации корректно преобразуются…

Хотя в SELECT * FROM `b_conv_link` WHERE `type`='attachments' записаны их старые номера (foreign_id) и новые номер (ipb_id).

Нашёл конкретные посты, у них в исходной базе и в финальной - разные ID, всё правильно изменено. Т.е. IP Converter номера аттачей переписал во всех постах.

 

Но почему аналогичным образом не конвертируются ID топиков, постов, пользователей???

Может надо в исходной базе что-то донастроить, или ссылки showtopic в какой-то другой формат преобразовать?

Edited by f2065

Share this post


Link to post
Share on other sites

Проблему решил так:

Выгрузил php-скриптом foreign_id и ipb_id для members forums posts topics в бинарные файлы.

Выгрузил дамп базы.

Написал конвертилку текста которая пробегается по дамп-файлу и в соответствии с foreign_id=ipb_id изменяет там адрес/ID в домен/index.php?showtopic=ID, домен/index.php?showtopic=ID&p=ID, домен/index.php?showuser=ID, домен/index.php?app=forums&module=forums&section=findpost&pid=ID.

Вроде всё как надо в итоге стало, все ссылки на новые правильные места стали вести, с правильными ID.

 

Если эта процедура востребована - то можно сделать готовый набор скриптов и инструментов…

  • Upvote 1

Share this post


Link to post
Share on other sites

Готовый, универсальный набор инструментов "для чайника" вы не сделаете, это задачи из разряда "обработать напильником". У меня есть уже с десяток таких наборов постобработки конвертированных баз (ссылки, бб-коды, смайлы), каждый подходит исключительно для одного конкретного случая.

Share this post


Link to post
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
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...