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

感谢您的所有帮助。我已解压缩文件,再次编辑了重复的标签,然后非常仔细地重新压缩,特别注意了文件名,现在有了进展!

现在恢复时,我看到了这个错误消息,这似乎更为常见:

[2023-08-25 15:25:21] CREATE INDEX
[2023-08-25 15:25:21] ERROR:  could not create unique index "index_tags_on_lower_name"
[2023-08-25 15:25:21] DETAIL:  Key (lower(name::text))=(socialmedia) is duplicated.
[2023-08-25 15:25:21] EXCEPTION: psql failed: DETAIL:  Key (lower(name::text))=(socialmedia) is duplicated.

我猜这意味着我已经成功更改了标签,但我的数据库中的帖子中仍然存在该标签的一些实例。标签 ID 号表明应该有一个名为 socialmedia 的标签,但它却找到了一个名为 socialmedia2 的标签,这导致了冲突。

这篇帖子这篇帖子 讨论了修复方法,但由于我只能通过直接编辑本地机器上的代码来访问我的备份,因此我无法使用 MySQL 工具来帮助清理。

幸运的是,在我的数据库中,我只有 38 个 'socialmedia' 实例(而不是 50,000 多个 socialmedia 实例)。假设我如上面截图所示更改了第 395421 行的内容是正确的,那么我无法确定剩余的实例中哪些与 ‘socialmedia’ 标签相关,哪些与我已编辑为 ‘socialmedia2’ 的标签相关。

这是使用 socialmedia 标签的一个相当短的帖子的示例:

9488	'/groups/communitybuilders':86 '/groups/socialmedia':84 '/groups/webdev':89 '1st':117 '2022':131 '6':125 'activ':61 'banner':113 'btw':143 'close':169 'comment':21 'communiti':47 'communitybuild':87 'concept':4A 'especi':28 'event':119 'excit':164 'feedback':8B 'final':166 'get':38,133 'github':94 'grow':6A,142 'hack':127 'hard':156 'help':96 'homepag':151 'host':124 'improv':11B 'join':71,106 'launch':41,118,126 'like':128 'link':110 'live':140,175 'lot':27 'love':1A,67 'marvelxi':152 'mean':25 'media':51 'member':62 'mention':93 'move':45 'much':15 'new':150 'one':72,107 'onto':53 'plan':121 'platform':7B,43,139 'pleas':5A 'project':137 'promot':97 're':33,36,56,161 'readi':39,172 'rhorho358':23 'right':63 'see':100,167 'site':176 'slight':76,177,179 'small':58 'smile':77,178,180 'social':50 'socialmedia':85 'stage':31 'suggest':10B 'sure':79 'take':17 'team':59,75,103 'thank':12 'think':147 'time':19 'use':108 'webdev':90 'websit':3A 'whether':80 'work':155 'would':66,82	感谢您花时间在此处评论 @R ,这对我意义重大,尤其是在... 团队一直在努力,我们都非常兴奋地看到它终于接近在直播网站上准备就绪 :slight_smile: :slight_smile:	en_GB	4	f


不过,我可能走错方向了,因为开头的标签比用户在帖子中可能使用的标签要多。也有可能 ‘socialmedia’ 不是上面帖子中使用的标签,尽管它本应是。