2011-03-07 57 views
0

在我们的rails 2.x应用程序中,数据库连接的search_path取决于通过其联系应用程序的子域(基本上为search_path = "production_"+subdomain)。由于每个连接都定义了search_path,并且数据库连接是通过请求共享的,所以这是一个问题。我宁愿不改变并发性,因为显而易见的原因,一次只提供一个请求。Rails + PostgreSQL:search_path取决于子域

那么有没有办法将连接池中的数据库连接分组并设置某种策略,只有适合的连接用于请求?或者有没有办法为每个子域使用一个连接池(在超时后池会自动丢弃)?为每个子域启动一个rails实例是没有选择的,因为可能会有很多闲置的子域(这是某种亲子账户,您在子域和自己的“世界”中与某些表中的其他站点不同)。

这是什么问题的最佳解决方案?

回答

0

你可以在请求的开始处设置connection.search_path,在加载任何对象之前,你会没事的。在我们的例子中,我们有一个Rack应用程序,用于封装我们的导轨应用程序,并根据传入域为我们执行此设置。