Migrate a phpBB3 forum to Discourse

Похоже, в текущей версии скрипта есть ошибки. Попробуйте обновить файл settings.yml и убедитесь, что параметры new_categories и category_mappings выглядят так, как показано ниже:

new_categories: []
category_mappings: {}
11 лайков

@gerhard спасибо за подсказку.. я попробую это прямо сейчас

1 лайк

Огромное спасибо, всё сработало

3 лайка

Пост был объединен с существующей темой: Руководство для начинающих по установке Discourse на Windows 10 для разработки

Это отличная новость! Спасибо. У меня есть тестовый дамп базы данных 3.2, с которым я поэкспериментирую, а также сделаю копию 3.3, чтобы попробовать. Жаль, что не могу позволить вам просто взяться за это, но карманы очень пусты… хе-хе.

В любом случае, ещё раз спасибо и с нетерпением жду возможности это попробовать!

2 лайка

Проблемы с импортом… При запуске скрипта импорта он загружает мой sqldump и выводит сообщение «Импорт phpBB3 начинается…», но сразу же выдаёт трассировку стека с общей ошибкой:

/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.7.0/lib/bootsnap/compile_cache.rb:29:in `permission_error’: у bootsnap нет прав на запись элементов кэша в ‘tmp/cache/bootsnap/compile-cache’ (или, что менее вероятно, нет прав на чтение ‘/usr/local/lib/ruby/2.7.0/set.rb’) (Bootsnap::CompileCache::PermissionError)

Очевидно, это какая-то ошибка прав доступа, но я пытаюсь понять, что нужно сделать для её исправления… Любая помощь будет оценена по достоинству!

1 лайк

ОБНОВЛЕНИЕ! Разобрался! Быстрое изменение прав chmod в контейнере решило эту проблему.

Протестировал с базой данных phpBB 3.3, применив предложенное вами изменение, и всё работает как по маске! Провожу более тщательное тестирование, но в целом всё на месте, за исключением некоторых ожидаемых проблем с bbcode. Пользователи, сообщения, посты — всё скопировалось как надо. Единственное, что, похоже, не сработало, — это миграция паролей. Это мелочь. Модуль установился, я видел, что он загрузился, так что не знаю, почему данные не перенеслись. Но это не важно, я рад, что наконец-то избавляюсь от phpBB.

Ещё раз спасибо @gerhard за вашу работу!

2 лайка

Хорошо, что это известно. Не стесняйтесь отправить мне личное сообщение с примерами проблем BBCode. Мне интересно значение столбца phpbb_posts.post_text.

3 лайка

Я пытался импортировать phpBB3 (версия 2.7) дважды.
В первый раз не был импортирован ни один топик, а пользователи были повреждены.
Я переустановил Ubuntu с нуля и повторил все действия, но на этот я застрял на этапе import_phpbb3.sh. Скрипт загружает базу данных, а затем останавливается с ошибкой:

Импорт phpBB3 начинается...

Traceback (most recent call last):
        20: from script/import_scripts/phpbb3.rb:13:in `<main>'
        19: from script/import_scripts/phpbb3.rb:14:in `<module:ImportScripts>'
        18: from script/import_scripts/phpbb3.rb:15:in `<module:PhpBB3>'
        17: from script/import_scripts/phpbb3.rb:15:in `require_relative'
        16: from /var/www/discourse/script/import_scripts/phpbb3/support/settings.rb:5:in `<top (required)>'
        15: from /var/www/discourse/script/import_scripts/phpbb3/support/settings.rb:5:in `require_relative'
        14: from /var/www/discourse/script/import_scripts/base.rb:16:in `<top (required)>'
        13: from /var/www/discourse/script/import_scripts/base.rb:16:in `require_relative'
        12: from /var/www/discourse/config/environment.rb:4:in `<top (required)>'
        11: from /var/www/discourse/config/environment.rb:4:in `require'
        10: from /var/www/discourse/config/application.rb:70:in `<top (required)>'
         9: from /var/www/discourse/config/application.rb:71:in `<module:Discourse>'
         8: from /var/www/discourse/config/application.rb:96:in `<class:Application>'
         7: from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:324:in `require'
         6: from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:291:in `load_dependency'
         5: from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:324:in `block in require'
         4: from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.7.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:44:in `require'
         3: from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.7.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
         2: from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.7.2/lib/bootsnap/load_path_cache/loaded_features_index.rb:89:in `register'
         1: from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.7.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.7.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require': cannot load such file -- mocha/version (LoadError)

Буду очень благодарен за любую помощь.

1 лайк

Обновление о phpBB 3.3.. о чём я жалею, что не заметил до переноса форумов: в версии 3.3 изменилось хранение вложений. Вместо физического имени файла теперь используется уникальный идентификатор, который перекрёстно ссылается в таблице phpbb_attachments. Уникальный идентификатор файла имеет формат USERID_возможнослучайнаястрока.

Расширение файла или что-либо подобное отсутствует, так как phpBB 3.3 определяет его по данным в таблице.. Я не знаю способа автоматизировать этот процесс, поэтому сейчас восстанавливаю старые изображения пакетами.. Возможно, я смогу ускорить процесс, так как у меня есть более старая копия изображений до обновления до 3.3, но будьте осторожны: импорт из 3.3 может сломать ваши вложения, и вам предстоит весёлое время, особенно если у вас несколько тысяч файлов, как у меня.. ну что ж! Удача добровольно стать подопытным кроликом

2 лайка

Это вся информация, которую он вам предоставил? У меня было указано, что не удалось загрузить директорию tmp/ из-за проблем с правами доступа, поэтому, находясь в контейнере импорта, я выполнил команду chmod -R 777 для этой директории. Это было сделано только для импорта и не повлияет на ваш контейнер «app».

2 лайка

Мне удалось импортировать данные из phpBB 3.2, но для этого пришлось:

  • Вручную импортировать базу данных во внутренний MariaDB: mysql -u root -p phpbb < /shared/import/mysql/data/phpbb_mysql.sql

  • Настроить файл settings.yml: new_categories: [] category_mappings: {}

  • Многократно запускать скрипт импорта, так как при первом запуске возникали ошибки с сообщениями и темами.

После этого всё работает нормально…

2 лайка

Всем привет.
У меня возникла проблема.
Есть https://discourse.example.com/
Я хочу импортировать базу данных с https://forum.old.example.com/
Я следовал всем шагам из этого руководства.
Я сделал дамп базы данных, назвал его phpbb_mysql.sql и поместил его в

/var/discourse/shared/standalone/import/data/

После выполнения

/var/discourse/launcher enter import
import_phpbb3.sh

я получаю следующую ошибку:

Таблица ‘phpbb.phpbb_config’ не существует

Может ли это быть связано с настройками в settings.yml?

Пожалуйста, помогите мне решить эту проблему.

1 лайк

Убедитесь, что префикс таблицы (table_prefix) указан верно. Отображается ли он как phpbb_ в панели управления?

2 лайка

Да, мой префикс верен

1 лайк

Если я правильно понимаю, schema в вашем файле settings.yml должен быть установлен в teamlab_forum_saas.

2 лайка

Это имя базы данных. Это схема?

1 лайк

Это верно. В MySQL schema является синонимом database. :slightly_smiling_face:

3 лайка

Подождите немного, я попробую.

1 лайк

Получилось. Большое спасибо. Это помогло :+1: :clap:

2 лайка