Перейти к контенту

[2.1.x]UNATCO (объединение двух форумов)


Рекомендуемые сообщения

  • Ответы 101
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

Это не баг. В инструкции указано, что языки не объединяются. :D
Ссылка на комментарий
Поделиться на других сайтах

  • 4 недели спустя...

Такс, еще один вопросик...

Значит, у меня есть два форума: один по адресу http://cs.domain.net.ru/forum а другой по адресу http://forum.domain.net.ru. Так вот, если я их объеденю, и создам одинаковые разделы, то сообщения будут появляться и по тому адресу и по этому?

Ссылка на комментарий
Поделиться на других сайтах

К моду приложена нормально оформленная и грамотно составленная инструкция. Интересно, её кто-нибудь читал? :D

 

Повторюсь ещё раз: UNATCO НЕ ЯВЛЯЕТСЯ враппером для создание кластерных форумов. Этот скрипт СКЛЕИВАЕТ ДВЕ БАЗЫ ДАННЫХ в одну и размещаться эта база данных будет НА ОДНОМ хосте.

 

Лучше приезмлите один из ваших доменов на хост другого и не парьтесь. ;)

Ссылка на комментарий
Поделиться на других сайтах

Оба форума используют одну базу данных и находятся на одном хосте.
Тогда UNATCO тут не нужен. :D
Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...
  • 2 недели спустя...
Unknown column 'has_blog' in 'field list'

шаг 10, ipb 2.0.0 -> 2.1.5

Что значит 2.0.0 —> 2.1.5? Надеюсь, ты не пытаешься слить два форума разных версий? Тебя же спрашивали в начале:

 

Укажите версию форумов, базы данных которых будут подвергнуты конвертации.

 

Оба форума должны быть одной версии. Если это не так, один из них нужно сконвертировать до версии второго. :D

 

В штатной ситуации (когда версии форумов идентичны) такое сообщение означает, что админ некорретно обновился до 2.0.x ;) Либо добавь поле has_blog в ibf_members (или какой там у тебя префикс), либо удали упоминание поля has_blog из struct_20x.php / struct_21x.php — оно находится в функции get_unite_struct().

Ссылка на комментарий
Поделиться на других сайтах

  • 3 недели спустя...

Notice: Undefined ibresource: error_no in /home/www/.../forum/unatco/sql_engine/class_db_mysql.php on line 896

 

Имеется ошибка с базой данных.

 

Возвращаемая ошибка

 

------------------------

mySQL ошибка запроса: INSERT INTO ipbmember_extra (id,notes,links,bio,ta_size,photo_type,photo_location,photo_dimensions,aim_name,

icq_number,website,yahoo,interests,msnname,vdirs,location,signature,avatar_locati

on,avatar_size,avatar_type) VALUES('3976','','','','','','','','','0','','','','','in:Inbox|sent:Sent Items','','','blank.gif','','local')

 

Ошибка mySQL:

Код ошибки mySQL:

Дата: Friday 21st of April 2006 11:42:20 PM

 

 

==

На этом у меня умер процесс объединения (10ый шаг),

объединяю два форума 2.0 версии ;)

нет в жизни счасться :):D:)

Ссылка на комментарий
Поделиться на других сайтах

Без описания ошибки сложно сказать, но, возможно, в таблице ipbmember_extra первичного форума есть поля, которых нет в таблице ipbmember_extra вторичного форума? Довольно распостранённая ошибка.

 

Базы форумов большие?

Ссылка на комментарий
Поделиться на других сайтах

Да, сравнительно небольшие. В каждой около 10к сообщений и 1,5-2к мемберов. В gzip при сжатии с помощью Sypex Dumper Lite одна у меня занимает 2.73 мб, другая - 1.43 мб (дампы).

 

Сейчас вот попробовал снова всё сделать и ошибка повторилась. Сравнил таблицы эти. Поля идентичны.

 

Dr.Freddy, маловероятно конечно, но может это быть из-за того, что я загруженные файлы пользователей в uploads не стал загружать на сервер, на котором это объединение делаю?

 

Ещё возможно ненормально, что у меня на 6-ом шаге 2-3 раза вылетает ошибка 502 (я так понимаю из-за перегрузки сервера). Тогда при обновлении страницы процесс либо продолжается, либо пишется ошибка SQL на предмет запроса на запись уже занесённых в базу данных (дублирование)... эту проблему я пропускал либо обновлением страницы, либо возвратом на 5ый шаг и повторным нажатием кнопки "далее" (в этом случае 6ой шаг продолжался с того места на котором отказ этот произошёл). Как я думаю это просто сбой редиректа. Это нормально? - или может тут и кроется причина дальнейших ошибок?

Ссылка на комментарий
Поделиться на других сайтах

Попробовал удалить таблицу member_extra из вторичного форума, такая же проблема возникла с ещё одной таблицой... удалил и её. В итоге где-то на середине скрипт зациклился и перестал дальше объединять базы :D
Ссылка на комментарий
Поделиться на других сайтах

маловероятно конечно, но может это быть из-за того, что я загруженные файлы пользователей в uploads не стал загружать на сервер, на котором это объединение делаю?
Если не разместить аплоады пользовательских аватар и фотографий так, как сказано в инструкции, ошибки не возникнет, но они окажутся не синхронизированными с базой даный и не станут потом отображаться на форуме, т.е. людям снова придётся их загружать.

 

Ещё возможно ненормально, что у меня на 6-ом шаге 2-3 раза вылетает ошибка 502 (я так понимаю из-за перегрузки сервера).
Я не помню точно, какой процесс протекает на 6-м шаге объединения, но ЛЮБАЯ ошибка во время выполнения скрипта как правило, означает, что начинать нужно сначала (или с этапа сохранения, если вы этим пользовались). При структурно одинаковых базах данных и вменяемо настроенных веб-серверах всё проходит чисто.

 

Ошибка 502 — Bad Gateway, как правило возникает при криво настроенном или перегруженном nginx или другим подобным софтом. Я бы рекомендовал перенести всю работы по объединению баз данных на локалхост: базы данных небольшие и не слишком сильно загрузят даже относительно современный Home PC. :D

 

Если не получится (и только если не получится), свяжитесь со мной по ICQ — помогу.

 

Попробовал удалить таблицу member_extra из вторичного форума, такая же проблема возникла с ещё одной таблицой... удалил и её.
А вот этого делать абсолютно точно не стоит — вы насмерть гробите вторичный форум и после объединения ни один пользовательский аккаунт из него работать не будет. ;)
Ссылка на комментарий
Поделиться на других сайтах

Повторно повторил всю процедуру всю... до 10ого шага (непосредственно объединение) никаких ошибок не было.

 

Началось объединение и снова:

 

---------

mySQL ошибка запроса: INSERT INTO ipbmember_extra (id,notes,links,bio,ta_size,photo_type,photo_location,photo_dimensions,aim_name,

icq_number,website,yahoo,interests,msnname,vdirs,location,signature,avatar_locati

on,avatar_size,avatar_type) VALUES('15','','','','','','','','','0','','','','','','','','','','local')

 

Ошибка mySQL:

Код ошибки mySQL:

Дата: Saturday 22nd of April 2006 08:57:46 PM

---------

 

Как видно, UNATCO пытается вставить строку с ID 15 в базу моего первичного форума. А та строка там естественно уже занята. Захожу и смотрю через phpMyAdmin обзор таблицы ipbmember_extra вторичного форума. Там ID всех строк начинаются с 2041, т.е. как и надо UNATCO присвоил им значения, которые идут после занятых в моём первичном форуме (использующихся), но... в моём первичном форуме всего 2038 пользователей! Так что тут видимо какой-то сбой...

 

не знаю что делать уже, в ICQ написал...

Изменено пользователем sl3d
Ссылка на комментарий
Поделиться на других сайтах

Если скрипт присвоил юзеру №1 вашего вторичного форума ID 2041, откуда взалась в member_extra запись с ID 15? Посмотрите базу данных вторичного форума — можеть быть, это просто паразитная запись, осколок какого-то удалённого юзера? Скрипт при смене ID ориентируется по ibf_members — со стандартными драйверами, по крайней мере.
Ссылка на комментарий
Поделиться на других сайтах

Ну возможно паразитная запись, потому что в базе вторичного форума сейчас все ID начинаются с 2039. А что делать-то? Как продолжить процесс избежав этой ошибки?
Ссылка на комментарий
Поделиться на других сайтах

Во-первых, обязательно начинайте процесс сначала, иначе баги всё равно будут лезть. Я, в принципе, вкрутил в систему возможность «сохранения» результатов каждого шага, но она неявная (нужно включать остановку работы скрипта после завершения каждого шага и дампить вторичную базу, а при ошибке переходить на нужный шаг по ссылке в браузере).

 

Итак, включаем стоп после каждого этапа.

 

Во-вторых, после завершения всех этапов обработки (непосредственно перед попыткой склеить базы данных) посмотрите ibf_member_extra вторичного форума — не болтаются ли там загадочные записи с ID меньшими, чем ID первого юзера. Если таким записям не соответствуют записи с теми же ID в ibf_members, их можно просто удалить.

 

Такие записи могут быть не в одиночестве и не только в members_extra, поэтому — дамп, дамп и ещё раз дамп.

Ссылка на комментарий
Поделиться на других сайтах

Действительно нашёл пресловутую строчку с ID15, удалил... новая ошибка:

 

-----------

mySQL ошибка запроса: SELECT id,name,mgroup,legacy_password,email,joined,ip_address,posts,title,allow_admin_m

ails,time_offset,hide_email,email_pm,email_full,skin,warn_level,warn_lastwarn,lan

guage,last_post,restrict_post,view_sigs,view_img,view_avs,view_pop,bday_day,bday_

month,bday_year,new_msg,msg_total,show_popup,misc,last_visit,last_activity,dst_in

_use,view_prefs,coppa_user,mod_posts,auto_track,temp_ban,sub_end,login_anonymous,

ignored_users,mgroup_others,org_perm_id,member_login_key,subs_pkg_chosen,has_blog FROM forum_members WHERE 1 LIMIT 0,120

 

Ошибка mySQL: Unknown column 'has_blog' in 'field list'

Код ошибки mySQL:

Дата: Saturday 22nd of April 2006 10:14:05 PM

Ссылка на комментарий
Поделиться на других сайтах

И после этого ты утверждаешь, что сравнивал базы и их структура идентична? :D Она не идентична — в таблице members одного из форумов есть поле has_blog, а в таблице второго его нет.
Ссылка на комментарий
Поделиться на других сайтах

Я сравнивал таблицы ibf_member_extra между собой, те идентичны ;)

 

Мда. Паронормальные явления какие-то. Откуда взялась эта странная строчка c ID15 непонятно (пересмотрел таблицу ibf_member_extra вторичной базы... там всё грамотно, ничего лишнего нету, всё по порядку). Какой ещё "has_blog" в "members" тем более непонятно... сначала на глаз посмотрел, потом экспорт сделал и поиск. Нет такого поля там в members :D:)

 

Dr.Freddy, а может стоит дописать скрипт так, что если он какую-либо строку вставить в таблицу базы первичного форума не может, то пропускает эту операцию и идёт дальше?

Ссылка на комментарий
Поделиться на других сайтах

Поле has_blog в базе данных 2.0.x должно быть. Если у тебя такого поля нет ни в первой, ни во второй базе данных, удали его упоминаение из драйвера форума. Для этого зайди в папку ipb_drivers, открой файл struct_20x.php, найди строку

id,name,mgroup,legacy_password,email,joined,ip_address,posts,title,allow_admin_m
ails,time_offset,hide_email,email_pm,email_full,skin,warn_level,warn_lastwarn,lan
guage,last_post,restrict_post,view_sigs,view_img,view_avs,view_pop,bday_day,bday_
month,bday_year,new_msg,msg_total,show_popup,misc,last_visit,last_activity,dst_in
_use,view_prefs,coppa_user,mod_posts,auto_track,temp_ban,sub_end,login_anonymous,
ignored_users,mgroup_others,org_perm_id,member_login_key,subs_pkg_chosen,has_blog

и замени её на

id,name,mgroup,legacy_password,email,joined,ip_address,posts,title,allow_admin_m
ails,time_offset,hide_email,email_pm,email_full,skin,warn_level,warn_lastwarn,lan
guage,last_post,restrict_post,view_sigs,view_img,view_avs,view_pop,bday_day,bday_
month,bday_year,new_msg,msg_total,show_popup,misc,last_visit,last_activity,dst_in
_use,view_prefs,coppa_user,mod_posts,auto_track,temp_ban,sub_end,login_anonymous,
ignored_users,mgroup_others,org_perm_id,member_login_key,subs_pkg_chosen

 

Это список полей, которые скрипт запрашивает из таблицы ibf_members вторичного форума. Т.е. здесь мы просто убираем из этого списка поле has_blog, которого у тебя почему-то нет. Должно сработать.

Ссылка на комментарий
Поделиться на других сайтах

Я всё сегодня за ночь сделал, правда пришлось помучатся, базы объединял вручную, удалял лишние поля и добавлял недостающие. Их оказалось много, так как базы что я объединял были переконвертированы совершенно с разных форумов. В итоге результата добился, спасибо UNATCO за помощь в переназначении всех ID, так бы наверное ещё неделю сидел :D
Ссылка на комментарий
Поделиться на других сайтах

Ффух, рад, что у вас всё-таки получилось. :D

 

Вообще, я собираюсь переписать UNATCO с тем, чтобы не было вот таких вот проблем с несовпадением структуры: на данный момент движок ориентируется на своё знание структуры IPB, а она, как водится, у каждого админа своя — вот ваши БД, например, живой пример. Как будет время — непременно сделаю.

Ссылка на комментарий
Поделиться на других сайтах

  • 3 недели спустя...

Dr.Freddy

Прочитал я весь этот топик и "unatco.htm", но перед началом очень хотелось бы посоветоваться...

Форум стоит на локале и второй там же. Я так сказать для всей сети забацал форум (первичный форум), его база уже успела стать размером в 110 метров... Второй форум маленький всего 18 метров, но всё равно пользователи не хотят терять то, что есть на нём. Вот и решил воспользоваться unatco

 

Первичный форум - IPB 2.1.5 модифицированный модами "eXTended Reputation System", Downloads Script v1.0.4 и Галереей 2.0.5. (Старт форума начинался с 2.0.3) Рассказал о модификаций т.к. она создают свои поля в БД.

Вторичный форум - IPB 2.1.6 чистый (не успел увидеть этот топик, как админ того форума его обновил, старт он начинал с 2.1.3)

Можно объединить вторичный форум в первичный, не обновляя первичный до версии 2.1.6?

 

Зарание спасибо, очень хорошая и своевременная поддержка с твоей стороны.

Ссылка на комментарий
Поделиться на других сайтах


×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.