Rails + PostgreSQL: search_path в зависимости от поддоменов - PullRequest
0 голосов
/ 07 марта 2011

В нашем приложении rails 2.x search_path соединения с базой данных зависит от субдомена, через который связывается приложение (в основном search_path = "production_"+subdomain).Поскольку search_path определяется для каждого соединения, а соединения с базой данных совместно используются запросами, даже одновременно, это является проблемой.Я бы предпочел не изменять параллелизм для обслуживания только одного запроса за раз по понятным причинам.

Так есть ли способ сгруппировать соединения с базой данных в пуле соединений и установить какую-то политику, что только подходящее соединениеиспользуется для запроса?Или есть способ использовать один пул соединений на поддомен (когда пулы автоматически удаляются после истечения времени ожидания)?Запуск экземпляра rails для каждого субдомена невозможен, поскольку может быть много неактивных субдоменов (это своего рода про-аккаунт, в котором вы получаете субдомен и свой собственный «мир», который в некоторых таблицах отличается от остальной части сайта).

Как лучше всего решить эту проблему?

1 Ответ

0 голосов
/ 29 сентября 2011

Вы можете просто установить connection.search_path в начале запроса, прежде чем загружать какие-либо объекты, и все будет в порядке. В нашем случае у нас есть приложение Rack, которое упаковывает наше приложение rails и выполняет эту настройку для нас на основе входящего домена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...