Ruby on rails 在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

在Rails应用程序中是否可以使用两种类型的数据库

我正在使用两个数据库-Postgres存储可能变化不大的数据,以及MongoDB 存储动态变化的数据

这是有效的方法吗?是否可以在这两个数据库之间进行连接并进行操作 在单个Rails应用程序中

如果我错了,请改正

问候,,
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
类PortalBase 默认_base.rb

class 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吗?我没有尝试,但应该是可能的