Импорт из phpBB3

  1. Какие данные можно импортировать?
  2. 1.1. Установка Дискурса
  3. 1.2. Подготовка контейнера Docker
  4. 1.3. Настройка импортера
  5. 1.3.1. Подключение к удаленной базе данных
  6. 1.3.2. Подключение к внутренней базе данных
  7. 1.3.3. Другие настройки
  8. 1,5. Выполнение скрипта импорта
  9. 1.6. Начальный дискурс
  10. 1.7. Убирать
  11. 1,8. Конец
  12. 4.1. У меня сильно измененный форум. Будет ли работать скрипт импорта?
  13. 4.2. Почему процесс импорта такой медленный?
  14. 4,3. У меня большой форум с большим количеством пользователей и постов. Как я могу минимизировать...
  15. 4.4. Можно ли запустить импорт на основе Docker на моем настольном компьютере или промежуточном сервере?
  16. 4,5. Сценарий отправляет какие-либо электронные письма во время импорта?
  17. 4,6. Какую версию Discourse мне следует использовать для импорта?
  18. 4,7. Я включил импорт паролей. Почему мои пользователи не могут войти со своими старыми паролями?
  19. 4.8. Импорт прошел успешно, но список пользователей пуст. Что случилось?
  20. 4.9. У меня есть смайлики на моем форуме. Они импортированы?

Итак, вы открыли Discourse и хотите узнать, как перейти с вашего существующего форума phpBB3?

Большой! Тогда продолжайте читать. Это руководство покажет вам, как использовать скрипт импорта phpBB3 для импорта из phpBB 3.0.x и 3.1.x.

Импорт из phpBB 3 Импорт из phpBB 3.2 в настоящее время не поддерживается.

Эта тема будет содержать оглавление

Какие данные можно импортировать?

  • пользователей
    • Аватары (по желанию)
    • Анонимные пользователи (как «системные» пользователи или как приостановленные пользователи)
    • Хэши паролей, которые можно использовать с плагин migratepassword (необязательный)
  • Категории и форумы
  • Темы и сообщения
    • Опросы и голоса (необязательно)
    • Смайлы
    • BBCodes
    • Внутренние ссылки на темы и сообщения
  • Важные темы и (глобальные) объявления
  • Личные сообщения (необязательно)
  • Вложения (опционально)
  • Закладки (необязательно)
  • Permalinks для импортированных категорий, тем и сообщений (необязательно)

Это рекомендуемый способ импорта контента с вашего форума phpBB3 в Discourse.

1.1. Установка Дискурса

Установите Discourse, следуя официальное руководство по установке ,
После этого хорошей идеей будет перейти в раздел администратора и настроить несколько параметров:

  • Включите login_required, если импортированные темы не должны быть видны общественности
  • Включите hide_user_profiles_from_public, если профили пользователей не должны быть видны широкой публике.
  • Отключите download_remote_images_to_local, если вы не хотите, чтобы Discourse загружал изображения, встроенные в сообщения.
  • Включите disable_edit_notifications, если вы включили download_remote_images_to_local и не хотите, чтобы ваши пользователи получали много уведомлений о публикациях, отредактированных пользователем системы.
  • Измените значение slug_generation_method, если в большинстве заголовков темы используются символы, которые не должны отображаться в ASCII (например, арабский). Увидеть эта почта для дополнительной информации.

Следующие шаги предполагают, что вы установили Discourse в Ubuntu и что вы подключены к машине через SSH или имеете прямой доступ к терминалу машины Следующие шаги предполагают, что вы установили Discourse в Ubuntu и что вы подключены к машине через SSH или имеете прямой доступ к терминалу машины.

1.2. Подготовка контейнера Docker

Скопируйте файл конфигурации контейнера app.yml в import.yml и отредактируйте его в своем любимом редакторе.

cd / var / discourse cp контейнеры / app.yml контейнеры / import.yml нано контейнеры / import.yml

Добавьте - «templates / import / phpbb3.template.yml» в список шаблонов. После этого это должно выглядеть примерно так:

templates: - "templates / postgres.template.yml" - "templates / redis.template.yml" - "templates / web.template.yml" - "templates / web.ratelimited.template.yml" ## Раскомментируйте эти две строки если вы хотите добавить Lets Encrypt (https) # - "templates / web.ssl.template.yml" # - "templates / web.letsencrypt.ssl.template.yml" - "templates / import / phpbb3.template.yml"

Вот и все. Вы можете сохранить файл, закрыть редактор и собрать контейнер.

/ var / discourse / launcher stop app / var / discourse / launcher перестроить импорт

Сборка контейнера создает каталог импорта в общем каталоге контейнера. Это выглядит так:

/ var / discourse / shared / standalone / import ├── данные ├── mysql └── settings.yml

1.3. Настройка импортера

Вы можете настроить импортер, отредактировав пример файла settings.yml, который был скопирован в каталог импорта.

nano /var/discourse/shared/standalone/import/settings.yml

файл настроек хорошо документирован и имеет разумные значения по умолчанию, но в любом случае вот несколько советов:

1.3.1. Подключение к удаленной базе данных

Измените хост базы данных, порт, имя пользователя, пароль и схему, если вы хотите подключиться к удаленной базе данных. Убедитесь, что ваш MySQL сервер позволяет удаленные подключения ,

1.3.2. Подключение к внутренней базе данных

Контейнер Docker поставляется с сервером MariaDB, который совместим с MySQL. Вам не нужно менять настройки базы данных, если вы собираетесь ее использовать. Все, что вам нужно, это дамп базы данных, который вы можете создать несколькими способами. Вот два из них:

  • Создайте резервную копию базы данных в панели управления администратора phpBB

  • Подключитесь к хосту базы данных и создайте дамп базы данных:

    # заменить последний параметр "phpbb" именем схемы базы данных mysqldump - root пользователя --password --result-файл phpbb_mysql.sql phpbb

Скопируйте дамп базы данных в каталог / var / discourse / shared / standalone / import / data /. Вам нужно извлечь файл, если вы создали сжатую резервную копию gzip или bzip2 и убедитесь, что файл называется phpbb_mysql.sql

1.3.3. Другие настройки

  • Измените table_prefix, если ваш форум phpBB не использует именования таблиц базы данных по умолчанию.
  • Убедитесь, что phpbb_base_dir указывает на / shared / import / data

1.4. Копирование вложений и изображений

Вы можете пропустить этот шаг, если не хотите импортировать вложения, аватары или смайлики.

Подключитесь к хосту phpBB3 через FTP или SCP и загрузите следующие каталоги в каталог / var / discourse / shared / standalone / import / data:

  • Вложения обычно хранятся в каталоге файлов. Вы можете убедиться, проверив путь в Панели управления администратора.

  • Аватары обычно хранятся в каталоге images / avatars. Вы можете убедиться, проверив путь в Панели управления администратора.

  • Смайлики хранятся в каталоге images / smilies.

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

/ var / discourse / shared / standalone / import ├── data │ ├── файлы │ ├── изображения │ │ ├── аватары │ │ ─ ├── галерея │ │ │ └── загрузка │ │ └── смайлики Mys── mysql └── settings.yml

1,5. Выполнение скрипта импорта

Совет Совет . Рекомендуется начать импорт внутри tmux или же экран сеанс, чтобы вы могли повторно подключиться к сеансу в случае потери соединения SSH.

Давайте начнем импорт, войдя в контейнер Docker и запустив скрипт импорта внутри контейнера Docker.

/ var / discourse / launcher введите import import_phpbb3.sh # внутри контейнера Docker

В зависимости от размера вашего форума пришло время для некоторых В зависимости от размера вашего форума пришло время для некоторых   или же   Скрипт импорта покажет вам следующее сообщение: Готово (00ч 26мин 52сек) или же
Скрипт импорта покажет вам следующее сообщение: Готово (00ч 26мин 52сек)

И пока вы ждете завершения импорта, вы можете взгляните на FAQ ,

Совет : вы можете прервать импорт в любое время, нажав Ctrl + C   Когда вы перезапустите импорт, он продолжится с того места, где остановился Совет : вы можете прервать импорт в любое время, нажав Ctrl + C
Когда вы перезапустите импорт, он продолжится с того места, где остановился.

Вы можете выйти и остановить контейнер Docker после завершения импорта.

выход # внутри контейнера Docker / var / discourse / launcher stop import

1.6. Начальный дискурс

Давайте запустим контейнер приложения и посмотрим на импортированные данные.

/ var / discourse / launcher приложение для запуска

Начнется дискурс, и Sidekiq начнет пост-обработку всех импортированных сообщений. Это может занять значительное количество времени. Вы можете следить за прогрессом, войдя в систему как администратор и посетив http://discourse.example.com/sidekiq

1.7. Убирать

Итак, вы удовлетворены результатом импорта и хотите освободить место на диске? Следующие команды удаляют контейнер Docker, используемый для импорта, а также все файлы, используемые во время импорта.

/ var / discourse / launcher уничтожить импорт rm /var/discourse/containers/import.yml rm -R / var / discourse / shared / standalone / import

1,8. Конец

Теперь пришло время праздновать и наслаждаться своим новым экземпляром Дискурса! Теперь пришло время праздновать и наслаждаться своим новым экземпляром Дискурса

Следующие инструкции предназначены для пользователей, которые хотят импортировать с использованием среды разработки.

  1. Настройте среду разработки, следуя инструкциям для Ubuntu или же Mac OS X ,
    Следующие инструкции предполагают, что вы используете Ubuntu.

  2. Убедитесь, что ни Discourse, ни Sidekiq не запущены.

  3. Установите некоторые зависимости:

    sudo apt-get update sudo apt-get install libmysqlclient-dev cd ~ / discourse echo "gem 'mysql2'" >> Gemfile echo "gem" ruby-bbcode-to-md ',: github =>' nlalonde / ruby-bbcode -to-md '">> Gemfile Gemfile.lock

  4. Настройте свой импорт. Там есть пример файла настроек в ~ / discourse / script / import_scripts / phpbb3 / settings.yml

  5. Начните импорт (измените путь к файлу настроек, если вы разместите свои настройки в другом месте):

    cd ~ / discourse / script / import_scripts ruby ​​phpbb3.rb phpbb3 / settings.yml

  6. Подождите, пока импорт не будет завершен. Вы можете перезапустить его, если он замедлится до сканирования.

  7. Запустите ваш экземпляр Discourse: комплектация exec rails server

  8. Запустите Sidekiq и дайте ему сделать свою работу: bundle exec sidekiq
    В зависимости от размера вашего форума это может занять много времени. Вы можете следить за прогрессом по адресу http: // localhost: 3000 / sidekiq

Вот список вещей, которые все еще отсутствуют у импортера (в произвольном порядке):

  • Добавить поддержку phpBB 3.2
  • Добавить поддержку для Cakeay плагин
  • Импортированный текст, который выглядит как Markdown, должен быть экранирован
  • Закрыть темы, которые закрыты в phpBB3
  • Импортировать неутвержденные сообщения как скрытые
  • Импорт статуса чтения для каждого сообщения и личного сообщения
  • Импорт пользовательских полей профиля
  • Импорт групп
  • Улучшить конвертер BBCode в Markdown ( рубиново-вставки в блог-к-мд )
  • Поддержка пользовательских шаблонов для внутренних ссылок на темы и сообщения (оптимизированные для SEO URL-адреса)
  • Добавить поддержку для большего количества источников базы данных: MS SQL Server, Oracle, PostgreSQL

Не стесняйтесь запускать вашу любимую Ruby IDE и помогать делать импортеров еще лучше. Не стесняйтесь запускать вашу любимую Ruby IDE и помогать делать импортеров еще лучше

4.1. У меня сильно измененный форум. Будет ли работать скрипт импорта?

Может быть. Это зависит от того, какие изменения внесены в базу данных. Вы должны будете попробовать.

4.2. Почему процесс импорта такой медленный?

Импорт привязан к процессору. Вы должны использовать процессоры с высокой скоростью ядра, если вы спешите. Вы получаете скорость импорта около 400–600 сообщений в минуту на типичном сервере DigitalOcean. Серверы из чистого металла и, возможно, также ваш настольный компьютер, как правило, примерно в два раза быстрее.

4,3. У меня большой форум с большим количеством пользователей и постов. Как я могу минимизировать время простоя при импорте?

Ты можешь сделать добавочный импорт чтобы сократить время простоя.
Но имейте в виду: при инкрементальном импорте существует небольшой риск потери данных, поскольку существующие посты и пользователи не обновляются при инкрементном импорте. Вы потеряете редактирование записей между импортом, а также изменения, внесенные в профили пользователей.

4.4. Можно ли запустить импорт на основе Docker на моем настольном компьютере или промежуточном сервере?

Конечно. Вы можете переместить ваш экземпляр Discourse на другой сервер после завершения импорта. Взгляни на это How-To для инструкций.

4,5. Сценарий отправляет какие-либо электронные письма во время импорта?

Отправка электронных писем отключена во время импорта, и Discourse на некоторое время задерживает отправку сводных электронных писем импортированным пользователям. Это можно настроить с помощью параметра сайта default_email_digest_frequency, который по умолчанию равен 7 дням.

4,6. Какую версию Discourse мне следует использовать для импорта?

Рекомендуется всегда использовать пройденный тестами или бета-канал Discourse для импорта, так как сценарий импорта постоянно улучшается , Итак, убедитесь, что значение версии установлено соответственно в файлах конфигурации app.yml и import.yml. Все должно быть хорошо, если вы следовали официальное руководство по установке ,

4,7. Я включил импорт паролей. Почему мои пользователи не могут войти со своими старыми паролями?

Убедитесь, что вы включили плагин migratepassword в app.yml, следуя How-To для установки плагинов , Кроме того, пользователи не смогут войти со своим старым паролем, если он считается небезопасным. По умолчанию Discourse требует минимальную длину пароля 10 символов (для администраторов это 15), и пароль не должен быть на список общих паролей , Но пользователи всегда могут сбросить свой пароль, щелкнув ссылку «Я забыл свой пароль» в диалоговом окне входа или непосредственно на веб-сайте https://discourse.example.com/password-reset.

4.8. Импорт прошел успешно, но список пользователей пуст. Что случилось?

Список пользователей не будет отображаться сразу. Он генерируется фоновой задачей, которая выполняется Sidekiq. Вам, вероятно, придется подождать, пока вся пост-обработка импортированных данных не будет закончена.

4.9. У меня есть смайлики на моем форуме. Они импортированы?

Да. Вы можете сопоставить их с Emojis в файле настроек, иначе они будут импортированы как изображения. Все смайлы по умолчанию (кроме Да а также ) уже есть эмодзи

ГОРЯЧАЯ ЛИНИЯ

(062) 348 60 00
(095) 210 57 42

Дед Мороз в офис Донецк

Дед Мороз на детском утреннике Донецк

Дед Мороз на дом Донецк

Новости

Телеканал Юнион в гостях у Морозко

Последние записи