PostgreSQLでユニークインデックスを指定するときwhereを指定したい話の続き
以前書いたacts_as_paranoid + ユニークインデックスの話の続きです。
実はこの方法は問題があって、schema.rbにwhere付きのユニークインデックスを張ってることが記録されないんですね。
Railsでスキーマ情報を確認したい時って、普通schema.rbを見ますよね。できればここにwhere付きのadd_indexを書き出すべきだと思います。
ちなみにschema.rbがどのタイミングで作成されるかは次の通り。
- rake db:migrateを実行
- Databaseのスキーマ情報が更新される
- rake db:schema:dump が実行されてDatabaseのスキーマ情報からdb/schema.rbが作られる
ちゃんと調べるまで2と3は逆だと思ってました。
と、いうわけでこれからちゃんとしたgemを作ってみようと思います。