Phusion Passenger、Nginx、および Postgres 9.1.4 で Rails 3.2 アプリを実行しています。この投稿で説明されている方法に従って、マルチテナント アプリをPostgresql のスキーマ(開発中) に移動しました。
このアプローチでは、リクエストごとにスキーマ検索パスをグローバルに (handle_subdomain を介して、以下を参照) 設定しているように見えるため、これは ( Resque を介して) バックグラウンド ジョブにどのように影響しますか?
class ApplicationController < ActionController::Base
before_filter :handle_subdomain
def handle_subdomain
if @tenant = Tenant.find_by_subdomain(request.subdomain)
PgTools.set_search_path @tenant.id
else
PgTools.restore_default_search_path
end
end
end
次に、かなりの時間がかかる Resque バックグラウンド ジョブで検索パスを設定するとどうなりますか (たとえば、S3 でホストされている多数の Paperclip 画像を削除するなど)。これは、handle_subdomain にパスを設定するアプリへのリクエストに干渉する可能性がありますか?
ActiveRecord にパッチを適用して、スキーマ検索パスをハードコーディングする必要がありますか? EG select * from "1"."users" ("1" はスキーマ パス)
助けてくれてありがとう。