Rails 5.1.0 (Edge) でのDBクリーニングGemの進捗

Rails アプリケーションでのテスト時のデータクリーニングには Database CleanerDatabaseRewinder を使っていることが多いと思う。

Rails 5.1.0 の Edge つまり GitHub の master Rails に対してこれらを利用する場合は、Rails の PR 28293 に対応したパッチがあたった以下のものを使う必要がある。

それぞれの進捗を書く。

Database Cleaner

PR が既に出ていたが、2017年3月7日現在まだ master にマージされていない。

github.com

当面は以下のような感じで Gemfile に指定するなどの対処で動かすことになる。

gem 'database_cleaner', git: 'https://github.com/activefx/database_cleaner', branch: 'rails-5-1-schema-migration-table-name-fix'

DatabaseRewinder

master マージ済み。

github.com

未リリースなので、いまのところ Gemfile への git オプション指定などが必要。


これらには前述の PR で消されたActiveRecord::Migrator.schema_migrations_table_name に代わりActiveRecord::SchemaMigration.table_name を使うようにした対応が入っている。

Tip として ActiveRecord::SchemaMigration.table_name は Rails 4 では入っているため、現在メンテナンス対象となっている Rails 4.2 との互換があるため Rails のバージョンによるパッチの違いは考えなくても良い。