大家好!
我遇到了一些数据导出和恢复方面的问题,希望能得到你们的帮助。
背景:
我想将数据从 Discourse Teams 导出到一个托管在 DigitalOcean 上的自托管 droplet。
备份和恢复过程都很顺利,没有任何问题。但在恢复之后,Discourse 显示了以下内容:
我尝试再次恢复,但问题依旧。
以下是数据恢复日志(txt 格式):
请帮忙解决。
编辑:
这是来自 /logs 的截图:
dsh.re/64209a(请加上 https://——很抱歉论坛不允许我直接上传图片或添加另一个链接)
3 个赞
你好,Yash!很遗憾听到你在备份/恢复方面遇到了一些问题。你试过安全模式吗?只需在 URL 末尾添加 /safe-mode 即可。然后你可以查看在禁用当前主题、非官方插件或所有插件时会发生什么。
我还建议你查看 /logs 和 nginx 错误日志,看看是否有任何错误可能进一步帮助你。
另外,从命令行运行 ./launcher rebuild app 时会发生什么?你可能需要尝试多次运行它。这在过去对我很有效。
最后,你能分享你的 containers/app.yml 文件内容吗(请去掉密码和站点识别信息),以便我们了解你安装了哪些插件。
4 个赞
嘿,Tobias,
非常感谢你迅速回复。真心感谢你的帮助。
-
当我访问 /safe-mode 时,会出现几个复选框选项,例如禁用主题等。勾选所有选项并点击“下一步”后,前端仍然出现相同的错误。
附加的 URL 是 /?safe_mode=no_custom%2Cno_plugins%2Conly_official。
请注意,这是一键式 DigitalOcean Droplet,我尚未安装任何额外插件。
但之前的 Teams 实例安装了很多插件。你认为这可能是导致问题的原因吗?
-
以下是 /logs 的链接:
Dropshare Apps - upload anything anywhere on macOS and iOS
-
我正在尝试运行 ./launcher rebuild app。第一次尝试没有结果,正在重试。登录之后,前端仍然出现相同的错误。
-
这是 app.yml 文件的截图。我需要导出该文件并发送给你吗?
关于问题出在哪里,你有什么想法吗?
2 个赞
Discourse | DigitalOcean Marketplace 1-Click App - 这个行不通吗?我是不是得删除 Droplet,然后按照你分享的说明重新设置?我的理解对吗?
2 个赞
好的,我会尝试一下,并在这里发布结果。谢谢托比亚斯!
3 个赞
嘿 @tobiaseigen
我设置了一个新的 Droplet,按照 GitHub 上的说明安装了 Discourse。登录后上传了备份并执行恢复,但出现了相同的错误。
恢复日志:
错误日志位于 /logs
app.yml 文件:
请问您能帮我看看接下来的步骤吗?我已经尝试过使用 launcher 进行重建和进入安全模式,但错误依旧。到目前为止,我还没有安装任何插件。
顺便提一下,DigitalOcean 的一键安装程序使用的是 Docker 和 GitHub 上的最新版本。这不应该与手动安装完全一致吗?
4 个赞
太好了,我们又近了一步。我下次在电脑前会查看这个问题。
4 个赞
schleifer
(Andrew Schleifer)
11
这是上传相关的问题。系统正在查找 S3 存储桶名称,但新环境尚未配置该名称。
备份是如何创建的?是否包含了所有上传内容?我在恢复日志中没有看到任何上传记录,这表明备份中可能不包含任何上传内容。
3 个赞
pfaffman
(Jay Pfaffman)
13
啊!这个网站是在您进行备份之前被终止的吗?如果不是,资源将位于 S3 上,因此完整恢复将会失败。
为了使备份正常工作,必须启用一个隐藏设置,以便将所有 S3 资源包含在备份中。
可以想象,取消团队网站可能不会自动触发该设置的启用。
3 个赞
我相当确定,这是网站停用时会进行的常规备份下载,其中包含所有上传内容。
我明天将亲自测试,以确认备份/恢复流程在 Teams 上仍能按预期正常工作。
3 个赞
我刚快速测试了备份流程,确认上传内容确实已包含在备份文件中。明天我会尝试弄清楚如何将此备份恢复到全新的自建站点。
2 个赞
你好 @schleifer —— 正如 Tobias 正确指出的那样,该备份是从团队(即常规的备份下载)创建的。当我点击“取消订阅”时,系统给了我一个选项来备份并下载该备份。之后,我又从管理面板单独创建了一个备份。两者的文件大小相同,但都无法在自托管环境中正常工作。
@pfaffman —— 不不,我在创建备份时网站仍处于活跃状态。我不确定隐藏设置的情况,那可能是问题所在。
@tobiaseigen —— 当我解压 tar.gz 文件时,唯一的内容是“dump.sql”。我没有看到任何媒体文件或附件。我在创建备份时是否操作有误?
3 个赞
pfaffman
(Jay Pfaffman)
17
是的,那不是您需要的备份。如果您只有 SQL 转储文件,那么您需要联系他们,获取包含上传文件的完整备份。我相信他们明天就能处理好,您就一切顺利了。
3 个赞
michaeld
(Michael - Communiteq)
18
通常情况下,它会(当然)遗漏上传内容,但恢复不会因此失败,对吗?
4 个赞
我也有同样的想法——如果文件缺失,Discourse 难道不应该仍然显示所有线程、外部链接和对话,只是不显示原生上传的附件吗?
3 个赞
pfaffman
(Jay Pfaffman)
20
我认为,如果他取出 dump.sql.gz 并将其重命名为 full-dump-filename.sql.gz,应该就能成功恢复;但如果文件名是 tar.gz 格式,系统会尝试处理上传文件并导致失败。(也许站点设置中涉及 S3 相关配置?我不是很清楚。)上周有一个类似的话题,当时 Gerhard 也给出了同样的建议。
不过,如果他真的想托管该站点,就需要包含上传文件,那么他不妨直接等待完整的备份包。
3 个赞
@biyaniyash 能否请您在新站上访问 /admin/site_settings/category/all_results?filter=s3,禁用所有与 S3 相关的设置,然后重试?这应该能让您的站点正常运行。
1 个赞
嘿 @tobiaseigen:
这是我在新自托管 Discourse 站点上访问 /admin/site_settings/category/all_results?filter=s3 时默认看到的内容:
除一个选项外,其他所有选项似乎默认都被禁用了。您能确认我需要采取哪些步骤吗?
3 个赞