Satoryu's Diary

Rubyが好きなプログラマーの日記。日々の生活、開発に関するメモとか考えとか。


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

参考

Tags: Rails

*1 そもそもmongodb とRailsの組み合わせをどれだけの人がやってるんだろう。


最近の投稿

翻訳しました(ちょっとだけ)

follow us in feedly