移动帖子因约束导致 500 错误

Hi,

A topic started to drift, so I split it to a new topic. Unfortunately, it’s now going back on topic, so I tried to move the relevant posts back to the original one. I’m getting a 500 error.

It seems a constraint is failing:

2019-09-21 14:39:48.805 UTC [26689] discourse@discourse ERROR:  duplicate key value violates unique constraint "post_timings_unique"`
`2019-09-21 14:39:48.805 UTC [26689] discourse@discourse DETAIL:  Key (topic_id, post_number, user_id)=(9957, 79, 1) already exists.`
`2019-09-21 14:39:48.805 UTC [26689] discourse@discourse STATEMENT:  UPDATE post_timings pt
        SET topic_id    = mp.new_topic_id,
            post_number = mp.new_post_number
        FROM moved_posts mp
        WHERE pt.topic_id = mp.old_topic_id
          AND pt.post_number = mp.old_post_number
          AND mp.old_post_id = mp.new_post_id`
        
`2019-09-21 14:39:48.806 UTC [26689] discourse@discourse ERROR:  current transaction is aborted, commands ignored until end of transaction block`
`2019-09-21 14:39:48.806 UTC [26689] discourse@discourse STATEMENT:  DROP TABLE IF EXISTS moved_posts

这里有明确的复现步骤吗?你能在新主题上重现这个问题吗?

2 个赞

我相当确定这个问题已在 FIX: Existing post timings could prevent moving posts · discourse/discourse@bee000b · GitHub 中修复。
@nmcgovern 如果您仍能复现该问题,请标记以重新打开。

6 个赞