rails中的多数据库连接



我希望我的Entry模型使用多个数据库。当客户加入网络时,会自动为该客户创建一个新的数据库。其他型号将使用相同的数据库。这在铁轨上可能吗?

有趣的是,我十分钟前刚刚想出了一个解决方案。。。

给。。。

首先在数据库中定义单独的数据库连接。yml

我的有

production:
 adapter: mysql
 -etc etc-

然后我添加了一个额外的数据库(对我来说,我有一个遗留数据库,我想连接到…)

legacy_production:
  adapter: mysql
  -etc etc-

在适当的情况下,对不同的环境重复此操作

我做的下一件事是在"lib"中创建一个名为"legacy_model.rb"的新文件,它看起来很简单,就像这个

 require 'active_record'
    class LegacyModel < ActiveRecord::Base
      self.abstract_class = true
      establish_connection "legacy_#{RAILS_ENV}"
    end

现在,为了利用这一点,我只创建了一个类/模型,并从LegacyModel继承,就像这样…

class User < LegacyModel
  -any validations etc you might want-
end

瞧,它将访问遗留数据库,而不是我正在使用的数据库。

可能有更好的解决方案,但这似乎对我有效——希望它能有所帮助!

是否有特殊的体系结构原因需要使用单独的数据库?我想,像这样的"多主页"应用程序的一个更常见的解决方案是在Entry模型上存储一个account_id,并拥有一个数据库。

相关内容

  • 没有找到相关文章

最新更新