我可以在 rails 4.x 中同时使用 Mongoid 和 ActiveRecord ORM 吗?

Can I use both Mongoid and ActiveRecord ORMs in rails 4.x?

我的 rails 应用程序现在可以在这些版本上正常运行:

ruby 1.9.3
rails 3.2
mongoid 2.4

我同时依赖 ActiveRecord 和 Mongoid API -- ActiveRecord 环绕 sqlite3 数据库,Mongoid 环绕 mongodb 数据库。

我需要将我的应用程序升级到 ruby 2.0 和 rails 4.x。快速搜索 显示 Mongoid API 尚未正式移植到 ruby 2.0 / rails 4.x, 但是一些开发人员已经找到了解决方法。但是,解决方法 我浏览的是 mongodb-only 后端(即,它们依赖于 --skip-active-record 生成应用程序时)。

问题:谁能肯定地说是否同时使用 ActiveRecord 和 Mongoid API 将在 ruby 2.0 和 rails 4.x 下工作?

我正处于 Ruby-1.9.3/Rails-3.2/Mongoid-3 到 Ruby-2.1.2/Rails 的中间-4.2/Mongoid-4 对同时使用 ActiveRecord 和 Mongoid 的大型应用程序进行升级。你会想将 Mongoid-4 与 Rails-4.x 一起使用,但我没有遇到任何特定于 ActiveRecord 和 Mongoid 的问题(当然除了通常的升级废话之外)。

您可能想先从 Mongoid-2 转到 Mongoid-3。 Mongoid-3 和 -4 接口几乎相同,但我不太确定 Mongoid-2。

我还建议在触摸 Rails 之前移动到 Ruby-2.x,这样这样的顺序可能会使事情变得更容易:

  1. 将 Mongoid-2 升级到 Mongoid-3。
  2. 升级 Ruby-1.9.3 到 Ruby-2.x.
  3. 将 Rails-3.2 和 Mongoid-3 升级到 Rails-4.0 和 Mongoid-4。
  4. 升级 Rails-4.0 到 Rails-4.1.
  5. 升级 Rails-4.1 到 Rails-4.2.

当然,您会希望有一个完整的测试套件,并且希望在继续下一步之前让所有内容都通过。