Rails アプリケーションでのテスト時のデータクリーニングには Database Cleaner か DatabaseRewinder を使っていることが多いと思う。
Rails 5.1.0 の Edge つまり GitHub の master Rails に対してこれらを利用する場合は、Rails の PR 28293 に対応したパッチがあたった以下のものを使う必要がある。
それぞれの進捗を書く。
Database Cleaner
PR が既に出ていたが、2017年3月7日現在まだ master にマージされていない。
当面は以下のような感じで Gemfile に指定するなどの対処で動かすことになる。
gem 'database_cleaner', git: 'https://github.com/activefx/database_cleaner', branch: 'rails-5-1-schema-migration-table-name-fix'
DatabaseRewinder
master マージ済み。
未リリースなので、いまのところ Gemfile への git オプション指定などが必要。
これらには前述の PR で消されたActiveRecord::Migrator.schema_migrations_table_name
に代わりActiveRecord::SchemaMigration.table_name
を使うようにした対応が入っている。
Tip として ActiveRecord::SchemaMigration.table_name
は Rails 4 では入っているため、現在メンテナンス対象となっている Rails 4.2 との互換があるため Rails のバージョンによるパッチの違いは考えなくても良い。