在Rails应用程序中可以使用两种类型的数据库吗?
我使用两个数据库-Postgres来存储可能变化不大的数据,MongoDB
存储动态变化的数据。
这种方法有效吗?是否可以连接这两个数据库并操作
在单个Rails应用程序中?
如果我错了,请纠正。
当做,
巴兰
最佳答案
是的,这是可能的,这是我以前的代码中的一个例子(但是这里我们对两个数据库都使用mysql,但是我认为您可以得到一个想法)
在database.yml文件中定义两个数据库
development: &defaults
adapter: mysql
encoding: utf8
database: DB1
enable_call: true
username:
password:
host:
portal_development: &defaults
adapter: mysql
encoding: utf8
database: DB2
enable_call: true
username:
password:
host:
在您的模型中,必须将模型与上述数据库结合起来
门户库.rb
class PortalBase < ActiveRecord::Base
self.abstract_class = true
establish_connection "portal_#{Rails.env}"
def self.table_name_prefix
"DB1."
end
end
默认_base.rb
class DefaultBase < ActiveRecord::Base
self.abstract_class = true
establish_connection "#{Rails.env}"
def self.table_name_prefix
"DB2."
end
end
并相应地导出模型
class Client < PortalBase
#code
end
希望你现在有个主意:)