# 在子域名之间移动 Discourse——这会奏效吗？

**URL:** https://meta.discourse.org/t/move-discourse-between-subdomains-will-this-work/144561
**Category:** Support
**Created:** [2020年三月17日 09:13 UTC](https://meta.discourse.org/t/move-discourse-between-subdomains-will-this-work/144561 "2020-03-17T09:13:42Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![DBHacker](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/dbhacker/32/173072_2.png) [@DBHacker](https://meta.discourse.org/u/DBHacker)
#### Post date: [2020年三月17日 09:13 UTC](https://meta.discourse.org/t/move-discourse-between-subdomains-will-this-work/144561/1 "2020-03-17T09:13:42Z")

</div>

**场景：**

注意：以下两个实例（服务器 1 和服务器 2）均运行在两台不同服务器上的 Docker 容器中。两台服务器均同时支持 HTTP 和 HTTPS（端口 80 和 443），并使用了 Let’s Encrypt 证书：

1. Discourse 已在服务器 1 上完整运行，IP 地址为 1，同时支持 HTTP 和 HTTPS：`discourse-test.example-domain.com`
2. Discourse 已在服务器 2 上初始化并运行（尚无额外帖子或主题），IP 地址为 2，同时支持 HTTP 和 HTTPS：`talktime.example-domain.com`

**目标：**

将服务器 1（测试环境）的所有内容迁移到服务器 2（生产环境），并将域名从 `discourse-test.example-domain.com` 更改为 `talktime.example-domain.com`。

**建议方案：**

1. 在服务器 1 上对 Discourse 进行备份。
2. 在服务器 2 上恢复来自服务器 1 的 Discourse 备份。

这样应该可以无缝完成吗？

或者有什么需要注意的陷阱？

感谢任何提示。

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [2020年三月17日 09:20 UTC](https://meta.discourse.org/t/move-discourse-between-subdomains-will-this-work/144561/2 "2020-03-17T09:20:33Z")

</div>

这应该可以。在恢复后，请执行：

`script/discourse remap //discourse-test.example-domain.com //talktime.example-domain.com`

---

<div class="post-metadata">

### Author: ![DBHacker](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/dbhacker/32/173072_2.png) [@DBHacker](https://meta.discourse.org/u/DBHacker)
#### Post date: [2020年三月17日 11:30 UTC](https://meta.discourse.org/t/move-discourse-between-subdomains-will-this-work/144561/3 "2020-03-17T11:30:34Z")

</div>

更新：

成功了……谢谢。

但头像没有恢复，不知何故。

也许是因为这个失败了？

```plaintext
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)

```

---

<div class="post-metadata">

### Author: ![DBHacker](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/dbhacker/32/173072_2.png) [@DBHacker](https://meta.discourse.org/u/DBHacker)
#### Post date: [2020年三月17日 12:34 UTC](https://meta.discourse.org/t/move-discourse-between-subdomains-will-this-work/144561/4 "2020-03-17T12:34:39Z")

</div>

> [@DBHacker](#):
>
> /usr/local/lib/ruby/site\_ruby/2.6.0/rubygems/core\_ext/kernel\_require.rb:92:in `require’: 无法加载文件 – thor (LoadError)

这个方法有效：

```plaintext
su discourse -c 'bundle exec script/discourse remap //discourse-test.example-domain.com //talktime.example-domain.com

```

……运行正常……

但在恢复过程中，头像没有迁移过来（我们在备份时选择了包含图片）。

更新：

我们通过将服务器 1 的以下目录中的图片迁移到服务器 2，使头像正常工作：

```plaintext
/var/discourse/shared/standalone/uploads/defaults

```

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [2020年四月16日 12:34 UTC](https://meta.discourse.org/t/move-discourse-between-subdomains-will-this-work/144561/5 "2020-04-16T12:34:59Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
