[急募]何故か突然消滅したindex_statuses_on_uriを再生成する方法

@ars42525 定義が分かっているなら、psqlからcreate index流すのが早いかと。

@osapon db/schema.rbに書いてあるっぽいんですが読み方がわからないという…

@ars42525 単独カラムでのユニークインデックスっぽいので、
CREATE UNIQUE INDEX index_statuses_on_uri ON statuses (uri);
ですかね。自信が無いので、他のインスタンスで
pg_dump -s -t statuses データベース名 > statuses.sql
とかすると、テーブルの定義が取得できます。
でも、作られていなかったと言うことはユニークインデックスの生成に失敗したと思われるので、データが重複しているとか、なにか問題があるかもしれません。

@osapon データ重複っぽいですね
とあるトゥートが重複して登録されたようなエラーが出ました

@ars42525 重複しているデータを見比べてみて、どちらかが誤って入っているデータだとは思うのですが・・・。

@osapon 全く同じトゥートが何故か2個dbに登録されちゃってるんでどちらかを残せば問題はなさそうなんですけどね…

@ars42525 マストドンのデータをきちんと見たことがないので推測なのですが、idカラムとuriカラムは連動していないでしょうか。どちらかの行で、idとuriが不一致になっている方があったら、そいつがルパンだぁ~かなと。

@osapon idが自分のサーバーでのトゥートのidで、uriがリモートでのトゥートのURLみたいですね
なので、uriが一緒なのにidが違うデータが2件ある感じ

フォロー

@ars42525 ふむー、ユニークインデックスが作られる前にリモートからのデータがなぜか二回届いて両方登録されちゃった感じですね。テーブルの定義をる感じ、他のテーブルから外部参照していることも無さそうなので、DELETE文でどちらか適当に消しても良さそうですが、もし管理画面から投稿の単独削除ができるなら、管理画面から消した方が安全かと思います。

@osapon 1個消してcreate indexしたらまたエラーになったんで一個ずつ消すとかそういう次元じゃなかったみたいです…w

ログインして会話に参加
:realtek:

思考の /dev/null