一个模型 - Rails中的许多数据库连接?

时间:2010-01-19 21:48:50

标签: ruby-on-rails database activerecord

(使用Ruby on Rails和ActiveRecord)

简而言之:模型如何为每个请求使用不同的数据库架构?

为什么我需要id:我有一个工作的内部网应用程序为一家公司工作,但我决定将其提供给其他公司。 Rails的方法是将company_id添加到每个模型,并始终使用此范围。但是为每个公司制作单独的数据库架构会更有意义。有一些标准的方法怎么做?

谢谢!

2 个答案:

答案 0 :(得分:2)

为每家公司单独设置一个应用程序实例会出现什么问题?

答案 1 :(得分:1)

将company_id添加到所有模型绝对是最佳选择。你所谈论的内容很难长期管理,确保正确的连接用于存储正确的数据可能很棘手。

尽管分化这样的分层很烦人,但可以在相当短的时间内完成并证明,之后事情将更容易管理。使用named_scope,使用这样的属性进行过滤并不困难。

简单的替代方案是多次部署应用程序,每个公司使用不同的database.yml,其中数据在应用程序级别上隔离,而不是在应用程序内。

使用Passenger(mod_rails)和一些shell脚本编写它会很容易。