场景:
注意:以下两个实例(服务器 1 和服务器 2)均运行在两台不同服务器上的 Docker 容器中。两台服务器均同时支持 HTTP 和 HTTPS(端口 80 和 443),并使用了 Let’s Encrypt 证书:
- Discourse 已在服务器 1 上完整运行,IP 地址为 1,同时支持 HTTP 和 HTTPS:
discourse-test.example-domain.com
- Discourse 已在服务器 2 上初始化并运行(尚无额外帖子或主题),IP 地址为 2,同时支持 HTTP 和 HTTPS:
talktime.example-domain.com
目标:
将服务器 1(测试环境)的所有内容迁移到服务器 2(生产环境),并将域名从 discourse-test.example-domain.com 更改为 talktime.example-domain.com。
建议方案:
- 在服务器 1 上对 Discourse 进行备份。
- 在服务器 2 上恢复来自服务器 1 的 Discourse 备份。
这样应该可以无缝完成吗?
或者有什么需要注意的陷阱?
感谢任何提示。
2 个赞
RGJ
(Richard - Communiteq)
2
这应该可以。在恢复后,请执行:
script/discourse remap //discourse-test.example-domain.com //talktime.example-domain.com
5 个赞
更新:
成功了……谢谢。
但头像没有恢复,不知何故。
也许是因为这个失败了?
script/discourse remap //discourse-test.example-domain.com //talktime.example-domain.com
Traceback (most recent call last):
2: from script/discourse:4:in `<main>'
1: from /usr/local/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:92:in `require'
/usr/local/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:92:in `require': cannot load such file -- thor (LoadError)
1 个赞
这个方法有效:
su discourse -c 'bundle exec script/discourse remap //discourse-test.example-domain.com //talktime.example-domain.com
……运行正常……
但在恢复过程中,头像没有迁移过来(我们在备份时选择了包含图片)。
更新:
我们通过将服务器 1 的以下目录中的图片迁移到服务器 2,使头像正常工作:
/var/discourse/shared/standalone/uploads/defaults
2 个赞
system
(system)
关闭
5
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.