将讨论从域更改为子域?

你好,抱歉这个问题之前可能已经有人问过。我做过认真的调研,查阅了多个现有帖子,包括这一篇:

但我感觉还是没完全理解,因为情况并不完全或足够接近我的场景。我的情况是:最初将 Discourse 安装在主域名上,原计划仅用它作为唯一平台。因此当前安装地址是 example.com,我希望将其改为 discourse.example.com,然后在主域名上(另一台独立服务器)安装博客。

相关说明中提到需要从站点设置中移除旧域名,但我的情况是旧域名实际上只是同一域名的一个子域名,所以我不确定该如何操作。

这是否意味着我需要编辑 app.yml 中的域名配置(这看起来很简单),然后按照所引帖子中的步骤执行 remap、rake posts 和 rebake?

提前感谢任何补充说明,非常感激。

从技术上讲,sub.example.comexample.com 是不同的,尽管它们属于同一个域。你可以安全地按照说明操作,将 example.com 替换为 discourse.example.com,这样就能将论坛迁移到子域名。

除了重新构建外,重映射命令应为:

discourse remap example.com discourse.example.com

5 个赞

啊,好的,没错,这确实完全说得通。

最后一个问题是关于社交登录的问题。我目前将它们设置为主域名,当提示需要更新时,我理解这是指在登录应用本身中更新登录提供商(在我的情况下是 Facebook 和 Twitter)的设置,对吗?

您需要在所有外部服务上更新您的域名,包括:

社交登录
分析
正常运行时间监控
其他任何内容

例如,前往 Facebook 开发者控制台更新回调 URL 和授权域名,Twitter 也是同样的操作。

3 个赞

好的,非常感谢你的澄清。:blush:

1 个赞

我将我的论坛迁移到了一个新域名,但没有直接运行重新映射,现在我遇到了冲突,因为有些帖子同时包含新旧域名,而运行重新映射会失败。

错误:ERROR:  duplicate key value violates unique constraint "unique_post_links"
DETAIL:  Key (topic_id, post_id, url)=(23737, 113202, https://MYDOMAIN/) already exists.
由于上述错误,重新映射仅部分应用。请再次运行脚本。

有没有办法忽略这个错误,至少重新映射其他所有内容?或者我可以手动删除该条目及其在数据库中的条目?我几年前做过类似的事情,但我找不到如何进入 pgsql