【发布时间】:2011-09-22 16:05:07
【问题描述】:
我有一个 Rails 3 应用程序,它根据子域使用不同的数据库。我通过在 ApplicationController 中使用“建立连接”来做到这一点。
现在我正在尝试使用delayed_job gem 进行一些后台处理,但是它使用了当时处于活动状态的数据库连接。它正在连接到子域数据库。
我想强制它使用“通用”数据库。我已经为一些在模型中调用“建立连接”的模型做了这个,如下所示:
class Customer < ActiveRecord::Base
establish_connection ActiveRecord::Base.configurations["#{Rails.env}"]
...
end
知道我该怎么做吗?
【问题讨论】:
-
我们遇到了完全相同的问题。很想得到回应。顺便说一句,JAG,你用什么来做基于子域的多租户?我们正在开发一个 gem,希望能提供一些意见。
-
我自己推出了自己的产品,因为我没有找到适合我需要的东西。基本上我有一个'setup_subdomain' before_filter 可以切换到适当的数据库。我很想看看你的宝石,有链接吗?
-
-
@JAG,我们仍在努力,但您可以在 github github.com/bradrobertson/apartment 上玩弄它。如果您使用 Postgres,它非常可靠,SQLite 和 MySQL 在理论上可以工作,但我们还没有真正测试过它们。
标签: ruby-on-rails-3 delayed-job