我希望我的Entry模型使用多个数据库。当客户加入网络时,将为该客户自动创建一个新数据库。其他型号将使用相同的数据库。在轨道中这可能吗?
答案 0 :(得分:0)
好笑,我刚刚在十分钟前提出了一个解决方案......
这里......
首先在database.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
瞧,它会访问遗留数据库而不是我正在使用的数据库。
可能有更好的解决方案,但这似乎对我有用 - 希望它有所帮助!
答案 1 :(得分:0)
您是否需要使用单独的数据库?我想象一个更常见的“多宿主”应用程序解决方案就是在您的Entry模型上存储一个account_id并拥有一个数据库。