axfelix
(Alex Garnett)
1
自动重建失败,看起来是这个问题的一些变体:
2022-05-03 15:30:54.370 UTC [1262] discourse@discourse LOG: duration: 1707.909 ms statement: INSERT INTO post_hotlinked_media (post_id, url, status, upload_id, created_at, updated_at)
SELECT
post_id,
obj.key AS url,
'downloaded',
obj.value::bigint AS upload_id,
pcf.created_at,
pcf.updated_at
FROM post_custom_fields pcf
JOIN json_each_text(pcf.value::json) obj ON true
JOIN uploads ON obj.value::bigint = uploads.id
WHERE name='downloaded_images'
ERROR: duplicate key value violates unique constraint "index_post_hotlinked_media_on_post_id_and_url_md5"
不到一个月前重建过,当时没有报错,所以引入这个问题的似乎是最近的。
4 个赞
david
(David Taylor)
4
是的,就是这样。我有一个修复程序正在开发中,应该在几分钟内合并。感谢报告 @axfelix
9 个赞
axfelix
(Alex Garnett)
5
太快了!
我需要做些什么特别的事情来获取这个吗?在运行启动器重建时,我仍然遇到 Caused by:\nActiveRecord::RecordNotUnique: PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_post_hotlinked_media_on_post_id_and_url_md5" 错误,即使在执行了 Docker 清理之后。
david
(David Taylor)
6
修复程序几秒钟前刚刚通过了测试。如果您现在重新构建,它应该会工作得更好。请告诉我们进展如何。
5 个赞
david
(David Taylor)
7
我们找到了另一个可能导致此错误的地方。因此,如果第一个修复程序无效,这个应该可以:
(现已在 tests-passed 中上线)
4 个赞
pfaffman
(Jay Pfaffman)
8
在我的开发实例上,数据库迁移成功了,但如果我从 2022-04-27-153103-v20220407195246.tar.gz 恢复备份,则会失败:
[361/9020]
正在迁移数据库... EXCEPTION: /home/pfaffman/src/discourse-repos/discourse/lib/discourse.rb:126:in `exec': 数据库迁移失败。
忽略 /home/pfaffman/src/discourse-repos/discourse/db/schema_cache.yml,因为它已过期。当前模式版本是 20220407195246,但模式缓存文件中的版本是 20220428094027。
rake aborted!
StandardError: 发生错误,此迁移及之后的所有迁移均已取消:
后面还有更多内容,其中包含:
ActiveRecord::StatementInvalid: PG::DuplicateObject: ERROR: type \"hotlinked_media_status\" already exist
1 个赞
axfelix
(Alex Garnett)
9
很高兴地通知您,第一个修复程序在通过测试后对我们有效!
2 个赞