@zundan なんでunique indexあるはずなのに重複するんでしょうかね……

index_accounts_on_username_and_domain_lowerインデックスができたのはdb/migrate/20170322021028_add_lowercase_index_to_accounts.rbなんだけどuniqueになったのはdb/migrate/20180528141303_fix_accounts_unique_index.rbだったりするのかな?後者のup中に重複を消してからインデックスができるまでの間に重複アカウントができちゃいそうな気もしますがRails側でロックかけるんでしたっけ…

@zundan あー、そのタイミングは考えられるか。トランザクションとして扱われているか確認は必要そうですね。

らりおさんのケースでは、過去にメッチャ重複起きて対処してあるはずなのに、今回念のために確認したらまた数件発生していたというのがあって、なんもわからんになってます。

あと、2019年6月にたてたサーバでも発生している。なんもわからん。

たぶん新しいサーバを作ってもマイグレーションは最初からぜーんぶ実行するんじゃないかな、と思ってます。勘違いかな…。

ユニーク制約がPostgres側につくまでは、コードのどこかで重複の確認が漏れてたり、僕なんかはテーブルに迂闊に触っちゃたりで重複をつくっちゃうかもですよね。

フォロー

@zundan schema.rb読み込んで一気に作られたような気がします。……そこにヒントあるかな?

Herokuでつくるとrake db:migrateを走らせるのが気楽でたぶん全部マイグレーションを走らせるのだけど、rake db:setupしたりすると違う経路で作られるのかもですねー

ログインして会話に参加
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。