Я добавил их, но разницы нет.
Не уверен, являются ли эти проблемы результатом некорректного вставки или так они и записаны в вашем YAML-файле, но это может вызвать ошибки. (Переносы строк в конце некоторых комментариев, из-за чего появляется вторая строка без комментария)
Ваш список элементов отформатирован с неправильными отступами.
Выше должно быть:
new_categories:
- forum_id: general
name: General
Рекомендую использовать https://www.yamllint.com/ для проверки вашего конфигурационного файла.
Спасибо за все ваши ответы. Я быстро понял, что редактирование settings.yml вне контейнера импорта не влияет на то, что запущено. Также я разобрался с пробелами в YAML и исправил свой файл настроек. В любом случае, импорт форума phpBB прошел успешно, за исключением одного момента…
Мое имя пользователя на phpBB совпадало с именем моей учетной записи администратора в Discourse. Я не могу войти в систему, и появляется сообщение:
Все исходящие письма были глобально отключены администратором. Уведомления по электронной почте любого рода отправляться не будут.
В результате я не могу запросить письмо для сброса пароля. Это настройка базы данных? И если да, могу ли я обновить это поле, используя ограниченные ресурсы контейнера? Есть ли другие идеи?
Обратите внимание, что у меня установлен плагин migratepassword, но он, похоже, не работает (возможно, потому что мой пароль был короче 15 символов).
Вы можете включить отправку писем для администраторов через консоль Rails:
./launcher enter import
rails c
> SiteSetting.disable_emails = "non-staff"
Вы также можете сбросить свой пароль напрямую из контейнера, без использования электронной почты, выполнив:
./launcher enter import
rake admin:create
Могу ли я предложить несколько изменений в эту документацию (и код):
- В этом больше нет необходимости, так как настройка
disable_edit_notificationsбольше не существует. Настройкаdisable system edit notificationsвыполняет указанную задачу и включена по умолчанию.
- Две строки SSL больше не закомментированы по умолчанию в
app.yml, поэтому удаление этих двух символов#сделает выдержку более точной по сравнению с тем, как она должна выглядеть.
-
Этот шаблон следует обновить, чтобы пользователи не сталкивались с этой ошибкой при импорте.
-
Также это (если я где-то не ошибся, это тоже требует исправления):
ВыполнениеIMPORT=1 bundle installвернуло:[!] Произошла ошибка при парсинге `Gemfile`: Вы не можете указывать один и тот же гем дважды с разными требованиями к версии. Вы указали: sqlite3 (~> 1.3, >= 1.3.13) и sqlite3 (>= 0). Bundler не может продолжить. # из /home/root/discourse/Gemfile:249 # ------------------------------------------- # group :generic_import, optional: true do > gem "sqlite3" # gem "redcarpet" # -------------------------------------------
Действительно, sqlite3 уже указан несколькими строками выше:
# ПРИМЕЧАНИЕ: в режиме импорта версия sqlite может иметь большое значение, поэтому мы фиксируем её на конкретной
gem "sqlite3", "~> 1.3", ">= 1.3.13"
gem "ruby-bbcode-to-md", git: "https://github.com/nlalonde/ruby-bbcode-to-md"
gem "reverse_markdown"
gem "tiny_tds"
gem "csv"
end
group :generic_import, optional: true do
gem "sqlite3"
gem "redcarpet"
end
Я использовал dev-установку для своего импорта, если это имеет значение.
Эту информацию следует указать в инструкции или обновить шаблон. Это заняло у меня несколько часов..
Что именно должно быть написано?
Удаление этой строки сделало успешную сборку контейнера возможной.
Так что вы удалили эту строку?
Да, это было решение.
Привет! Я успешно перенёс свой форум phpBB на Discourse, всё прошло гладко, и форум работает отлично. Однако я осознал, что не включил бинарный режим при загрузке данных phpBB по FTP, из-за чего все изображения повреждены. Я снова запустил скрипт, но изображения не были перезаписаны. Какой скрипт (желательно с указанием пути) мне нужно изменить, чтобы перезаписать повреждённые изображения и вложения?
Во втором испытании Discourse пропускает загрузки, так как они уже существуют в таблице uploads. Discourse избегает перезаписи существующих загрузок, если это явно не указано.
Вы можете попробовать добавить следующий фрагмент кода в attachment_importer.rb (discourse/script/import_scripts/phpbb3/importers/attachment_importer.rb at main · discourse/discourse · GitHub) перед вызовом @uploader.create_upload. Это обеспечит удаление существующей загрузки с тем же именем файла в первую очередь, что заставит Discourse выполнить повторную загрузку.
existing_upload = Upload.find_by(original_filename: filename)
if existing_upload
existing_upload.destroy
puts "Удалена существующая загрузка: #{filename}"
end
upload = @uploader.create_upload(user_id, path, filename)
Спасибо за ваш ответ. К сожалению, изменения не дали никакого эффекта. Скрипт выполняется всего за одну минуту, но вложения не перезаписываются…
Скорее всего, вам потребуется очистить базу данных и запустить её снова.
Как это сделать?
Шаг 1: Подключитесь к серверу через SSH:
ssh username@server-address
Шаг 2: Войдите в контейнер приложения:
./launcher enter import
Совет: Выполните команду docker ps, чтобы найти имя контейнера. По умолчанию оно обычно app.
Шаг 3: Сбросьте базу данных:
RAILS_ENV=production rake db:reset
Привет, Canapin,
Я обновил эту часть в руководстве.
Это зависит от ситуации. При настройке контейнера для localhost они всё ещё закомментированы. Руководство предполагает использование отдельного контейнера для импорта, который недоступен из интернета, поэтому в этом случае получение сертификатов не требуется.
Запрос на слияние (PR) по этому вопросу уже был принят в основную ветку.
Мы работаем над исправлением этой проблемы, но я обновил руководство и добавил раздел FAQ о том, как её решить.
Когда Discourse работает в подкаталоге, например domain.org/forum, постоянные ссылки не применяются, так как они имеют вид viewtopic.php?p=XXXX, но для корректной работы должны быть forum/viewtopic.php?p=XXXX.
Прошло много лет, но я наткнулся на то, что постоянные ссылки, которые никогда не работали, всё ещё настроены в нашем случае. Есть ли способ через GUI/CLI добавить префикс ко всем постоянным ссылкам в виде элемента пути URL, или кто-то может добавить запрос PostgreSQL для этого? Это также может помочь другим, если эту информацию добавить в первый пост.