2016年02月08日 [長年日記]
_ database_cleaner をMongoDB v3.2 以降で使う時に気をつける1つのこと
モンゴモンゴしてるRailsアプリで、database_cleanerを使ってデータをお掃除しようとすると、お掃除できませんでした。
結果から言うと、MongoDB 3.2 以降、デフォルトのストレージエンジンが変わったため、database_cleanerがそこに対応できていないようです。
解決方法
MongoDBの設定ファイルを変更し、以前のストレージエンジンMMPAv1 を指定すると動きます。
storage:
dbPath: /usr/local/var/mongoedb
engine: mmpav1 # <= これ
そもそも、database_cleanerは、<database>.system.namespaces を頼りにコレクションを一通り取得しようとしているのですが、これも3.0 以降から非推奨になっています。
なので、トレンディーなソリューションのニーズが上昇していると思います*1。
参考
*1 そもそもmongodb とRailsの組み合わせをどれだけの人がやってるんだろう。
[ツッコミを入れる]