修改备份中的数据库以删除重复键标记,以免在还原时失败

一点更新。我团队里的其他人上周也在处理这个问题,但没有找到解决方案,所以我又试了一次,这次是通过编辑我本地系统上的数据库。

我做了什么:

  1. 下载了我想要恢复的旧备份
  2. 使用 7zip 解压文件
  3. 使用 visual studio code 打开 dump.sql
  4. 直接在数据库中找到重复的标签。
  5. 通过搜索标签周围的“ ”找到了看起来像是标签列表的内容。在我的例子中是“socialmedia”。找到的实例中,标签似乎是倒数第二个和第三个。

  1. 编辑了一个,使其显示为

132 ‘socialmedia2’:1A socialmedia2 en_GB 3

  1. 使用 7zip 重新压缩 dump.sql 文件
  • 添加到存档
  • 存档格式 .gzip
  1. 重新压缩主备份文件
  • 添加到存档
  • 存档格式 .tar (gzip 尚不可用)
  1. 您现在应该看到一个已压缩的 .tar 修复备份文件

  2. 使用 7zip 压缩 .tar 文件以创建 .tar.gz 文件,以匹配 Discourse 使用的格式

  • 添加到存档
  • 存档格式 .gzip
  1. 上传到备份并通过管理部分进行恢复

此时我遇到了一个错误消息:

正在提取转储文件…
[2023-08-08 15:09:15] EXCEPTION: No such file or directory @ rb_check_realpath_internal - /var/www/discourse/tmp/restores/default/2023-08-08-150913/dump.sql.gz

有人知道我在上述过程中遗漏了什么吗?
我唯一能想到的是,它正在查找的路径使用了今天的日期而不是备份的日期(我写这个的时候是 2023-08-08)。