Привет! Я уже выполнил два тестовых восстановления из резервной копии после миграции с Drupal. Восстановление проводилось на свежих экземплярах Discourse, размещённых на другом VPS, с правильно настроенным FQDN и работающей почтой. Экземпляр импортера использовал только IP-адрес VPS и не имел настроенной почты. Не уверен, связано ли это с текущей проблемой, но в обоих тестах восстановления после завершения процесса, когда система перенаправляет на страницу создания учётной записи администратора, я не могу активировать учётную запись, так как письмо не отправляется. Обходное решение было найдено с помощью команд: ./launcher enter app, затем rake admin:create. После этого я смог войти в веб-приложение, успешно выполнить тесты отправки почты, и при включении отправки писем для всех пользователей остальные учётные записи начали успешно получать письма для сброса забытого пароля. Похоже, это ошибка в настройках по умолчанию после восстановления, когда письма не отправляются пользователям, не являющимся сотрудниками. Логично предположить, что адреса, указанные как администраторы, должны считаться сотрудниками ещё до подтверждения их учётных записей.
Это указывает на то, что скрипт импорта не создал учётную запись администратора. Если вы просто войдёте в систему и/или создадите учётную запись, используя адрес developer_email, у вас всё будет в порядке.
Скорее всего, это связано с тем, что при восстановлении резервной копии отправка писем для нештатных пользователей была отключена, а данный пользователь не является штатным.
Возможно? Это, безусловно, проблема «курицы и яйца» при запуске нового сайта и миграции. Я думаю, если вы добавите своего пользователя в developer_emails, всё заработает.
Также вы можете добавить что-то вроде этого в свой скрипт:
User.create(username: 'pat-the-admin', email: 'pat@user.com',password: 'very-safe-123', active: true, name: "Pat User") unless User.find_by_email('pat@user.com`)
Спасибо за ответ, Джей. Да, похоже, что именно так и произошло. И всё же, после того как я использовал консоль для активации своей временной новой учётной записи администратора и проверил список пользователей, я обнаружил, что мой предыдущий Drupal-логин, у которого были права администратора Drupal, автоматически получил статус администратора Discourse.
В моём файле app.yml указано:
DISCOURSE_DEVELOPER_EMAILS: 'new-discourse-user@email.com,old-drupal-user@email.com'
Да. Я подозреваю, что пользователь не считается сотрудником до активации аккаунта. Обычно я использую аутентификацию через Google на своих импортируемых сайтах и убеждаюсь, что люди, которым нужно иметь возможность войти в систему, указаны в DEVELOPER_EMAILS и имеют адрес Gmail.