您好,我已经使用从我的Drupal迁移中获取的备份进行了两次测试安装,并将其恢复到具有正确配置的FQDN和正常运行电子邮件的独立VPS上的新Discourse实例。导入器实例仅使用了VPS的IP地址,并且未配置电子邮件。我不确定这是否与此问题有关,但在我的两次备份恢复测试中,恢复完成后,当它将我带到管理员帐户创建页面时,我无法激活帐户,因为它不发送电子邮件。我能够通过以下方式解决此问题:./launcher enter app,rake admin:create。之后,我可以登录到Web应用程序并成功运行电子邮件测试,如果我为所有用户启用电子邮件,那么其他用户帐户就可以成功接收忘记密码重置电子邮件。因此,这似乎是恢复后默认设置的一个错误,即不对非员工发送电子邮件。我想它应该在帐户验证之前就将定义的管理员用户视为员工。
这表明导入脚本没有创建管理员帐户。如果你只是使用 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`)
感谢您的回复,Jay。是的,这似乎就是发生的情况。但不知何故,在使用控制台激活我临时的、新的管理员帐户并检查用户列表后,我看到我以前拥有 Drupal 管理员权限的 Drupal 用户名自动获得了 Discourse 管理员状态。
在我的 app.yml 中,我有:
DISCOURSE_DEVELOPER_EMAILS: 'new-discourse-user@email.com,old-drupal-user@email.com'
是的。我怀疑用户在账户激活之前不是工作人员。我通常的做法是在我的导入网站上使用 Google 身份验证,并确保我希望能够登录的人员在 DEVELOPER_EMAILS 中并且拥有 Gmail 地址。
1 个赞