在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

希望你现在有个主意:)

10-07 13:53
查看更多