Как редактировать скрипт импорта на продакшн-сервере?

Как редактировать vanila.rb напрямую на продакшн-сервере?

У меня возникает та же ошибка, и я ничего не знаю о Ruby.

Привет :wave:, если у вас стандартная установка, обычно нужно сделать следующее:

cd /var/discourse
./launcher enter app

cd script/import_scripts

Затем вы можете отредактировать файл vanilla.rb здесь.

Есть ли редактор по умолчанию? Потому что nano и vim не работают в лаунчере.

Вы можете установить его с помощью команды apt update && apt install nano; это должно сработать.

Добро пожаловать, Shin :slight_smile:

Чтобы лучше понять, как проходит ваш импорт, вы следуете этому руководству (в нём в качестве примера используется Vanilla-скрипт)?

Большое спасибо.

Всякий раз, когда я искал на форуме, я находил это руководство:

Спасибо большое. Я пробовал это раньше, но по какой-то причине теперь это работает :smiley:

Альтернативой может быть настройка редактора, например Visual Studio Code, для подключения к удалённому контейнеру и редактирования файлов оттуда, верно? Редактирование скрипта через инструмент командной строки, такой как nano, может быстро превратиться в мучительный процесс.

Кроме того, я думаю, что изменённые вами файлы будут перезаписаны при пересборке образа.

Я не совсем помню, как всё это работает, несмотря на то что уже делал несколько миграций. :sweat_smile:

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

Я уже мигрировал с нескольких форумов, но не знаю Ruby.

Если файлы перезаписываются, единственное решение — создать плагин на dev-боксе?

Примерно 12 месяцев назад я находился в точно такой же ситуации. Я изучил достаточно Ruby, чтобы модифицировать скрипт импорта из SMF и перенести форум с 700 000 сообщений и 8 000 пользователей. С момента нашей миграции в марте я с удовольствием использую Discourse.

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

Я бы хотел процитировать это:

:slight_smile:

Я также модифицировал импортеры для своих миграций, и я не знаю Ruby так хорошо.

Это совсем не обязательный навык.

Что касается того, как редактировать скрипты импорта… Я редактировал некоторые из них напрямую в контейнере, как минимум при одной из своих миграций. Это не правильный способ, поэтому я бы не рекомендовал его, но если вы будете осторожны и не потеряете свои изменения, это может сработать.

Зависит от того, что нужно изменить. Если речь идёт всего о нескольких простых правках, то всё должно быть в порядке. При использовании скрипта импорта для SMF я обнаружил, что он выполнил работу лишь частично, поэтому внёс в него значительные изменения и многократно перезапускал как частичные, так и полные импорты. Удивительно, насколько плохо всё работало на самом деле, когда начинаешь сравнивать содержимое нового форума со старым! Я написал несколько скриптов, которые полностью удаляли предыдущую тестовую систему Discourse, устанавливали новую копию Discourse, а затем запускали новый импорт с использованием последней версии скрипта.