PostgreSQLでユニークインデックスを指定するときwhereを指定したい話の続き

以前書いたacts_as_paranoid + ユニークインデックスの話の続きです。
実はこの方法は問題があって、schema.rbにwhere付きのユニークインデックスを張ってることが記録されないんですね。
Railsスキーマ情報を確認したい時って、普通schema.rbを見ますよね。できればここにwhere付きのadd_indexを書き出すべきだと思います。

ちなみにschema.rbがどのタイミングで作成されるかは次の通り。

  1. rake db:migrateを実行
  2. Databaseのスキーマ情報が更新される
  3. rake db:schema:dump が実行されてDatabaseのスキーマ情報からdb/schema.rbが作られる

ちゃんと調べるまで2と3は逆だと思ってました。

と、いうわけでこれからちゃんとしたgemを作ってみようと思います。