Объединение двух версий одного форума - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

Правила раздела

Здесь обсуждаются вопросы по настройке и администрированию форумов IPB 3.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Установка, настройка и обслуживание форумов IPB 2.x.
Оформление форумов, включая верстку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

Теги не найдены

  • 2 Страниц +
  • 1
  • 2

Объединение двух версий одного форума

#1 Пользователь не на сайте   Pekkonen ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 12
  • Регистрация: 01-Декабрь 16
  • Репутация: 0
  • IPB version:3.4.x
 

Отправлено 01 Декабрь 2016 - 13:11

Всем привет!

Есть форум на IPB 3.4.8, в котором из-за сбоев хостинга пришлось временно откатиться на бекап.

В результате сейчас имеем 2 версии форума - грубо с 2010 по 2015 год и с 2012 по 2016 год.
Хочется слить данные в один форум, но при использовании стандартного IP.Board Merge Tool из IPB Converters объединение происходит, но после этого часть данных дублируются (с 2010 по 2012 год)...
Форумы, посты, персональные сообщения и т.п. (

Можно ли избежать этого каким то образом?

Или в данном случае делать объединение только вручную, без использования средств форума?

Ну или на крайний случай вручную удалить из одного форума всю лишнюю информацию, т.е. оставив 2 непересекающихся по времени форума.

Заранее спасибо.
0

#2 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 735
  • Регистрация: 20-Март 09
  • Репутация: 2 273
  • IPB version:3.1.x
 

Отправлено 01 Декабрь 2016 - 16:32

Не совсем понятно каким образом дублируются данные с 2010 по 2012, если дублироваться под идее должны с 2012 по 2015, те годы которые пересекаются в двух базах. Если базы не отдельных ветвей тогда оставить с 2012 по 2016, остальное перенести вручную (режим INSERT IGNORE), либо удалить пересекающиеся данные и воспользоваться тем же самым IP.Board Merge Tool
0

#3 Пользователь не на сайте   Pekkonen ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 12
  • Регистрация: 01-Декабрь 16
  • Репутация: 0
  • IPB version:3.4.x
 

Отправлено 01 Декабрь 2016 - 16:37

Благодарю за ответ!
Изучаю сейчас что внутри баз и вижу что пересекаются обе базы только до определенного момента, как я и писал.
А потом идут темы с одинаковыми ID, но абсолютно разные по сути...
С постами аналогичная ситуация (

Цитата

остальное перенести вручную (режим INSERT IGNORE)

Это режим чего именно?
0

#4 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 735
  • Регистрация: 20-Март 09
  • Репутация: 2 273
  • IPB version:3.1.x
 

Отправлено 01 Декабрь 2016 - 16:44

Просмотреть сообщениеPekkonen сказал(а):

А потом идут темы с одинаковыми ID, но абсолютно разные по сути...

Значит это ветви одной когда-то общей базы, ид одинаковые но развивались они от определенного момента по разному. В таком случае INSERT IGNORE не подойдет, нужно удалить данные которые пересекаются и объединить форум в один через Merge Tool. При объединении старые ид потеряются.
0

#5 Пользователь не на сайте   Pekkonen ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 12
  • Регистрация: 01-Декабрь 16
  • Репутация: 0
  • IPB version:3.4.x
 

Отправлено 01 Декабрь 2016 - 16:51

Так при удалении данных которые пересекаются часть данных и потеряются (
Пока пробую руками через mysql перенести юзеров, темы и посты.
При этом изменив ID дублирующихся элементов (темы и топики) чтобы избежать потери данных.
После этого буду пробовать пересчитать глобальную статистику и посмотрю что будет на выходе.
Но чувствую что это может быть не самый правильный вариант переноса, поэтому и завел эту тему.
0

#6 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 735
  • Регистрация: 20-Март 09
  • Репутация: 2 273
  • IPB version:3.1.x
 

Отправлено 01 Декабрь 2016 - 16:52

Просмотреть сообщениеPekkonen сказал(а):

Это режим чего именно?

Когда бэкап вливается в другую базу данных, при этом создаются те записи ид которых отсутствуют в текущей бд. Вам он не подойдет, так как ид существуют, но содержимое не совпадает.
0

#7 Пользователь не на сайте   Pekkonen ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 12
  • Регистрация: 01-Декабрь 16
  • Репутация: 0
  • IPB version:3.4.x
 

Отправлено 01 Декабрь 2016 - 16:56

Так руками это всё делать или есть более простой способ внутри самого форума?
В Merge Tool не увидел подходящих для этого настроек
0

#8 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 735
  • Регистрация: 20-Март 09
  • Репутация: 2 273
  • IPB version:3.1.x
 

Отправлено 01 Декабрь 2016 - 16:58

Просмотреть сообщениеPekkonen сказал(а):

Так при удалении данных которые пересекаются часть данных и потеряются (

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

Ид которые пересекаются и имеют имеют одинаковые значения
SELECT m.member_id, m.name FROM db.ibf_members m INNER JOIN db2.ibf_members z ON (z.member_id = m.member_id) WHERE z.name=m.name

Ид которые пересекаются но не соответствуют друг другу
SELECT m.member_id, m.name, z.name as z_name FROM db.ibf_members m INNER JOIN db2.ibf_members z ON (z.member_id = m.member_id) WHERE z.name != m.name

0

#9 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 735
  • Регистрация: 20-Март 09
  • Репутация: 2 273
  • IPB version:3.1.x
 

Отправлено 01 Декабрь 2016 - 17:05

Просмотреть сообщениеPekkonen сказал(а):

Так руками это всё делать или есть более простой способ внутри самого форума?

Удалять руками (sql запросами). Объединять уже доступными утилитами для объединения двух разных форумов.
Вручную перенести можно только написав свой скрипт для переноса. Там много связей, руками переносить каждую запись явно не вариант.
0

#10 Пользователь не на сайте   Pekkonen ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 12
  • Регистрация: 01-Декабрь 16
  • Репутация: 0
  • IPB version:3.4.x
 

Отправлено 01 Декабрь 2016 - 17:15

Спасибо, но вчера при попытке объединения через Merge Tool получил на выходе полное дублирование всех форумов, хотя они и имели полностью идентичные значения по ID и по названию...
Объединять уже доступными утилитами для объединения двух разных форумов. 

Извините, но всё равно не понял как эта утилита сможет объединить следующее:

Форум1
Тема1 (ID=10)
Пост1 (ID=1000)
Пост10 (ID=1010)

Форум2
Тема1 (ID=10)
Пост11 (ID=1010)
Пост12 (ID=1012)

Ведь в итоговый форум должно попасть всё!
Форум
Тема1 (ID=10)
Пост1 (ID=1000)
Пост10 (ID=1010)
Пост11 (ID=1010)
Пост12 (ID=1012)
0

#11 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 735
  • Регистрация: 20-Март 09
  • Репутация: 2 273
  • IPB version:3.1.x
 

Отправлено 01 Декабрь 2016 - 17:15

Просмотреть сообщениеsiv1987 сказал(а):

Ид которые пересекаются и имеют имеют одинаковые значения

Те которые пересекаются и имеют одинаковые значения удаляются примерно таким sql запросам

DELETE m2.*, pp2.*, pc2.* 
FROM db2.ibf_members m2 
INNER JOIN db.ibf_members m ON (m.member_id=m2.member_id AND m.name=m2.name) 
LEFT JOIN db2.ibf_profile_portal pp2 ON (pp2.pp_member_id=m2.member_id) 
LEFT JOIN db2.ibf_pfields_content pc2 ON (pc2.member_id=m2.member_id)

db - имя базы данных с которой идет сравнение
db2 - имя бд откуда будут удаляться данные.
ibf_ - префикс таблиц.

Перед удалением, желательно DELETE заменить на SELECT и проверить какие данные будут удаляться.
0

#12 Пользователь не на сайте   Pekkonen ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 12
  • Регистрация: 01-Декабрь 16
  • Репутация: 0
  • IPB version:3.4.x
 

Отправлено 01 Декабрь 2016 - 17:16

Спасибо, но вчера при попытке объединения через Merge Tool получил на выходе полное дублирование всех форумов, хотя они и имели полностью идентичные значения по ID и по названию...
Объединять уже доступными утилитами для объединения двух разных форумов. 

Извините, но всё равно не понял как эта утилита сможет объединить следующее (все посты уникальные):

Форум1
Тема1 (ID=10)
Пост1 (ID=1000)
Пост10 (ID=1010)

Форум2
Тема1 (ID=10)
Пост11 (ID=1010)
Пост12 (ID=1012)

Ведь в итоговый форум должно попасть всё!
Форум
Тема1 (ID=10)
Пост1 (ID=1000)
Пост10 (ID=1010)
Пост11 (ID=1020 - уже с новым ID видимо)
Пост12 (ID=1022 - уже с новым ID видимо)
0

#13 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 735
  • Регистрация: 20-Март 09
  • Репутация: 2 273
  • IPB version:3.1.x
 

Отправлено 01 Декабрь 2016 - 17:20

Просмотреть сообщениеPekkonen сказал(а):

Спасибо, но вчера при попытке объединения через Merge Tool получил на выходе полное дублирование всех форумов, хотя они и имели полностью идентичные значения по ID и по названию...

Поэтому их предварительно нужно удалить.

Просмотреть сообщениеPekkonen сказал(а):

Извините, но всё равно не понял как эта утилита сможет объединить следующее:

Форум 1
Тема1 - 1
Тема2 - 2
Тема3 - 3

Форум 2
Тема1 - 1
Тема5 - 2
Тема6 - 3

----
Итоговой форум
Тема1 - 1 (Форум 2.Тема1 предварительно нужно удалить)
Тема2 - 2
Тема3 - 3
Тема5 - 4
Тема6 - 5
0

#14 Пользователь не на сайте   Pekkonen ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 12
  • Регистрация: 01-Декабрь 16
  • Репутация: 0
  • IPB version:3.4.x
 

Отправлено 01 Декабрь 2016 - 17:23

Хорошо, если опираться на ваш пример, то удалить просто так Тему1 из Форума1 я не могу, т.к. в ней частично есть нужные посты (
Поэтому и пишу, что то же самое похоже придется делать уже на уровне постов, а не только Тем... (
0

#15 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 735
  • Регистрация: 20-Март 09
  • Репутация: 2 273
  • IPB version:3.1.x
 

Отправлено 01 Декабрь 2016 - 17:31

Цитата

Поэтому и пишу, что то же самое похоже придется делать уже на уровне постов, а не только Тем... (

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

Можно также тупо объединить, потом удалить дублирующиеся значения SQL запросами.
0

Сообщить об этой теме:


  • 2 Страниц +
  • 1
  • 2


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2016 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна