Dou*_*oug 5 orm activerecord mongodb neo4j ruby-on-rails-3
我们有一个Rails 3应用程序,它有一个映射的PostgreSQL数据库(有~10个表)activerecord.一切都很好.
但是,我们也可以使用:
mongoidgem).neo4j-rails创业板),而不是PostgreSQL的用于一些表.使用带有一个Rails ORM的数据库很简单,多亏了database.yml.但是当有多个ORM时,我们如何处理?有这么好的方法吗?例如,ActiveHash(和ActiveYaml)可以很好地与ActiveRecord配合使用.我认为有可能让不同的ORM协同工作.谢谢你的任何提示.
这实际上取决于ORM的类型.一个很好的方法是使用继承.例如,您可以在database.yml文件中定义多个数据库和适配器.您可以使用ActiveRecord的establish_connection方法轻松地与这些对话.
# A typical Active record class
class Account < ActiveRecord::Base
...
end
# A new database connection
class NewConnection < ActiveRecord::Base
self.abstract_class = true
establish_connection "users_database"
end
# A new Active record class using the new connection
class User < NewConnection
...
end
Run Code Online (Sandbox Code Playgroud)
这里唯一的缺点是,当您连接到多个活动记录数据库时,迁移可能会有点冒险.
混合ORM
混合ORMS很容易.例如mongodb(有mongoid),只是不从活动记录继承并在你想要使用mongo的模型中包含以下内容:
class Vehicle
include Mongoid::Document
field :type
field :name
has_many :drivers
belongs_to :account
end
Run Code Online (Sandbox Code Playgroud)
构建在活动模型之上的ORM可以很好地协同工作.例如,使用mongoid,您应该能够定义与ActiveRecord模型的关系,这意味着您不仅可以拥有多个数据库,而且可以通过活动模型轻松进行通信.
| 归档时间: |
|
| 查看次数: |
1046 次 |
| 最近记录: |