Ruby on rails 在Rails中使用两个数据库?
在Rails应用程序中是否可以使用两种类型的数据库 我正在使用两个数据库-Postgres存储可能变化不大的数据,以及MongoDB 存储动态变化的数据 这是有效的方法吗?是否可以在这两个数据库之间进行连接并进行操作 在单个Rails应用程序中 如果我错了,请改正 问候,,Ruby on rails 在Rails中使用两个数据库?,ruby-on-rails,postgresql,mongodb,Ruby On Rails,Postgresql,Mongodb,在Rails应用程序中是否可以使用两种类型的数据库 我正在使用两个数据库-Postgres存储可能变化不大的数据,以及MongoDB 存储动态变化的数据 这是有效的方法吗?是否可以在这两个数据库之间进行连接并进行操作 在单个Rails应用程序中 如果我错了,请改正 问候,, Balan是的,这是可能的,这是我以前代码中的一个例子(但这里我们对数据库和数据库都使用mysql,但我认为您可以有一个想法) 在database.yml文件中定义两个数据库 development: &defaul
Balan是的,这是可能的,这是我以前代码中的一个例子(但这里我们对数据库和数据库都使用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:
在您的模型中,必须将基础模型与上述数据库相结合
portal_base.rb
class PortalBase < ActiveRecord::Base
self.abstract_class = true
establish_connection "portal_#{Rails.env}"
def self.table_name_prefix
"DB1."
end
end
类PortalBaseclass DefaultBase < ActiveRecord::Base
self.abstract_class = true
establish_connection "#{Rails.env}"
def self.table_name_prefix
"DB2."
end
end
classdefaultbase
并据此导出模型
class Client < PortalBase
#code
end
class客户端
希望您现在有一个想法:)找到解决方案: 我们可以使用
mongoid
gem来实现这一点
安装步骤
1) 通过在Gemfile中添加“gem mongoid”
并运行bundle
命令来安装mongoid
2) 通过键入“rails g mongoid:config”
生成mongoid配置,这将创建一个
配置文件mongoid.yml
靠近database.yml
文件,您可以将配置添加到Mongo服务器
在这个文件中
注意:添加Mongoid后,默认情况下会为MongoDB创建所有创建的模型,您可以指定
--orm
选项来为Postgres生成模型。可能与搜索web有关我找到了一个解决方案,但指定的注释中提到,首先坚持单个数据库,然后使用适配器与第二个数据库建立连接。。但我正在尝试的是在Rails应用程序中配置这些2db,这样我就可以完成正常的过程,比如用迁移创建表,用模型更新表等等,所以你是说这种方法不对吗?如果是这样的话,您可以在回答中添加此注释和相关参考资料。是的,我已经这样做了,而且非常简单。这仅适用于Rails3吗?我没有尝试,但应该是可能的