なんかPostgreSQL上げる直前くらいに整合性のないデータが大量に放り込まれていて、uniquenessが壊れてしまい、それを旧バージョンでdumpして新バージョンでrestoreするという処理 (これ自体はpg_upgradeclusterがやってくれる) の時にuniqueness violationが発生するみたいな大変なことになってた
上げる直前に何か操作ミスったんだろうなあ。普通はDBレベルで不整合なものって出ないと思うので、同じデータに対して2つのPostgreSQLが動いてたとかそういうのじゃないと説明つかない気がする (でもそれならそれでよく復旧できたな)
とりあえずpg_dumpを手でやり直して、重複しているデータをひとつひとつ手作業で消してからrestoreしたけど、これで外部キーが壊れる可能性は全然ある
@qnighy 私も同じようなことがありました:Mastodon 腐った DB 矯正メモ (2020-05-05) by らりおhttps://gist.github.com/lo48576/3fc718124de4e22b97d22568031f12dc
これもしかして PgHero か何かから duplicate index を削除してしまうと発生するトラブルなのではという疑惑が出てきました
@loliconductor @qnighy duplicate indexの削除と言えば、数日前にこんなのがマージされていましてhttps://github.com/tootsuite/mastodon/pull/13695
様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。