Переезд с 2.0.4 на 1.9.5

Список разделов phpBBex 1.x (поддерживается) Поддержка 1.x

Описание: У вас проблемы с phpBBex 1.x и вам необходима помощь? Спрашивайте здесь!
Правила раздела: Одна тема — один вопрос или группа связанных вопросов. Обязательно формируйте внятный заголовок, максимально отражающий суть вопроса. Подробно описывайте проблему. Не забудьте указать версию phpBBex и какие моды установлены, по возможности добавьте скриншоты проблемы или ссылку на страницу с проблемой.
Модератор: Поддержка

Сообщение #1 Nail » 11.08.2022, 15:58

Добрый день.
Пытаюсь смигрировать с 2.0.4 на 1.9.5.
Очевидно, базы не совсем совместимы(точнее - совсем не совместимы).
Может кто-то уже мигрировал, и есть рабочие решения?
Из важного - только сохранить юзеров и посты.. Остальное, в целом, решаемо..

Добавлено спустя 2 часа 31 минуту:
Хотелось бы хотя бы понять, какие таблицы надо тащить а какие нет..
Ну, и вообще, минимальный набор таблиц, которые необходимы для переноса форума..
Сейчас, к примеру, утыкаюсь в "Невозможно получить данные о стиле" после наката дампа..
Пересоздание таблиц phpbb_style_* из схемы по умолчанию результата на дало..

Ошибка такая
Код: Выделить всё
FILE: [ROOT]/includes/session.php
LINE: 1743
CALL: trigger_error()

FILE: [ROOT]/index.php
LINE: 17
CALL: phpbb_user->setup()

Правда, это особого смысла не несёт, потому что это только последнее, во что уткнулся..
Nail
Автор темы
Репутация: 0
С нами: 1 год 7 месяцев

Сообщение #2 VEG » 13.08.2022, 17:13

Скорее всего проще всего будет поставить чистую версию phpBBex 1.9, а потом вручную составленными SQL-запросами перенести данные из таблиц пользователей, тем и сообщений. SQL позволяет автоматически заполнить одну таблицу на основе другой, даже если схема другой таблицы совсем не совпадает с первой, вам просто нужно вручную указать, какие колонки в исходной таблице идут в какие колонки в целевой таблице. Например, я как-то конвертировал базу одного из своих форумов с совсем другого движка в phpBBex, и там запросы получались типа таких:
Код: Выделить всё
INSERT INTO new_db.`phpbb_users` (
  `user_id`, `user_type`, `group_id`, `user_permissions`, `user_perm_from`, `user_ip`, `user_browser`, `user_regdate`, `username`, `username_clean`,
  `user_password`, `user_passchg`, `user_pass_convert`, `user_email`, `user_email_hash`, `user_birthday`, `user_gender`, `user_lastvisit`, `user_lastmark`, `user_lastpost_time`,
  `user_lastpage`, `user_last_confirm_key`, `user_inactive_reason`, `user_inactive_time`, `user_topics`, `user_posts`,
  `user_lang`, `user_timezone`, `user_dst`, `user_dateformat`, `user_style`, `user_rank`, `user_colour`, `user_new_privmsg`, `user_unread_privmsg`, `user_last_privmsg`,
  `user_message_rules`, `user_full_folder`, `user_notify`, `user_notify_pm`, `user_allow_pm`, `user_allow_viewonline`, `user_allow_viewemail`,
  `user_allow_massemail`, `user_options`, `user_avatar`, `user_avatar_type`, `user_avatar_width`, `user_avatar_height`,
  `user_sig`, `user_sig_bbcode_uid`, `user_sig_bbcode_bitfield`, `user_from`, `user_icq`, `user_aim`, `user_yim`, `user_msnm`, `user_jabber`, `user_skype`, `user_website`,
  `user_occ`, `user_interests`, `user_actkey`, `user_newpasswd`, `user_form_salt`, `user_new`, `user_reminded`, `user_reminded_time`)
SELECT
  user_id, 0 as user_type, 2 as group_id, '' as user_permissions, 0 as user_perm_from, user_ip, '' as user_browser, user_regdate, username, username_clean,
  user_password, user_passchg, 1 as user_pass_convert, user_email, user_email_hash, user_birthday, 0 as user_gender, user_lastvisit, user_lastmark, user_lastpost_time,
  '' as user_lastpage, '' as user_last_confirm_key, user_inactive_reason,user_inactive_time,0 as user_topics, user_posts,
  'ru' as user_lang, '3.00' as user_timezone, 0 as user_dst, '|d.m.Y|, H:i' as user_dateformat, 1 as user_style, 0 as user_rank, '' as user_colour, `user_new_privmsg`, `user_unread_privmsg`, `user_last_privmsg`,
  0 as user_message_rules,-3 as user_full_folder,0 as user_notify,1 as user_notify_pm,1 as user_allow_pm, 1 as user_allow_viewonline, user_allow_viewemail,
  1 as user_allow_massemail, 233343 as user_options,'' as user_avatar, 0 as user_avatar_type,0 as user_avatar_width,0 as user_avatar_height,
  `user_sig`, `user_sig_bbcode_uid`, `user_sig_bbcode_bitfield`, `user_from`, `user_icq`, `user_aim`, `user_yim`, `user_msnm`, `user_jabber`, '' as `user_skype`,`user_website`,
  `user_occ`, `user_interests`, `user_actkey`, `user_newpasswd`, '' as user_form_salt,0 as user_new,0 as user_reminded,0 as user_reminded_time
FROM old_db.phpbb_users
WHERE user_id != 1;
То есть, в первом INSERT перечисляете все требуемые колонки целевой таблицы, которые хотите заполнить, и в последующем SELECT указываете, каким образом их заполнить данными из другой таблицы другой базы. Если вы не знаете SQL и не готовы его изучить в требуемой мере, боюсь, не получится мигрировать назад каким-то простым способом.

Если вы ищете поддержку последних версий PHP, а не минимализм phpBBex 1.9, имеет смысл смотреть в сторону phpBB 3.3, куда мигрировать будет гораздо проще. На данный момент нет планов по активному добавлению новых возможностей в phpBBex. Можно ожидать только ежегодные обновления с поддержкой более новых версий PHP и незначительными дополнениями (как было в 2020 и 2021 году). На конец 2022 года уже готовится новый релиз, но список изменений небольшой. Значительная часть усилий была направлена на удаление устаревшего кода времён PHP 4, который в phpBBex всегда лежал мёртвым грузом. В текущем виде движок можно воспринимать как легковесную альтернативу последнему phpBB, который сильно потяжелел.
VEG M
Администратор
Аватара
Откуда: Finland
Репутация: 1653
С нами: 11 лет 11 месяцев

Сообщение #3 Nail » 13.08.2022, 22:38

Спасибо, Евгений.
SQL я знаю, на плюс-минус уровне. Но я больше админ, чем программист :). Так как структуру таблиц PHPbb я не знаю совсем, то что нужно, а что не нужно - я плохо представляю.. В лоб проблему решить не удалось :)
В принципе, mysql-diff помогло хотя бы восстановить дамп, однако - даже STK не запускается.. Понятно, что этому надо уделить больше времени - к примеру - я теперь точно знаю, что не надо тащить styles, и что лучше урезать 2.0 до 1.9 а не расширять 1.9 до 2.0 тем же диффом. users и posts вроде бы напрямую совместимы, остальное - надо смотреть..
Если можете описать вкратце различия (из тех, что не увидеть diff'ом, например - теперь в поле совсем другое значение), и плюс-минус совместимость по таблицам - то буду крайне благодарен.. Ну или хотя бы на что обратить внимание..
Nail
Автор темы
Репутация: 0
С нами: 1 год 7 месяцев

Сообщение #4 VEG » 17.08.2022, 19:34

Увы, я совсем не занимался phpBBex 2.0 (это была инициатива Sumanai) и в последний раз видел структуру таблиц phpBB 3.1 где-то в 2015. Какого-то готового списка изменений у меня нет. В любом случае нужно в лоб сравнивать таблицы двух версий движка и прикидывать как перенести данные из одного места в другое. Значение существующих колонок в таблицах обычно понятно по названиям и по содержимому (в редких сложных случаях — после поиска имени колонки по коду). Чтобы было понятнее где что, лучше всего внести на форум какие-то тестовые данные, и по ним уже можно ориентироваться. Если у вас возникнут какие-то вопросы по значению каких-то конкретных колонок — спрашивайте, подскажу.
VEG M
Администратор
Аватара
Откуда: Finland
Репутация: 1653
С нами: 11 лет 11 месяцев


Вернуться в Поддержка 1.x



cron