Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 Postgresql的模式和后台作业_Ruby On Rails 3_Postgresql_Activerecord_Nginx_Passenger - Fatal编程技术网

Ruby on rails 3 Postgresql的模式和后台作业

Ruby on rails 3 Postgresql的模式和后台作业,ruby-on-rails-3,postgresql,activerecord,nginx,passenger,Ruby On Rails 3,Postgresql,Activerecord,Nginx,Passenger,我正在Phusion Passenger、Nginx和Postgres 9.1.4上运行Rails 3.2应用程序。我已按照中描述的方法将我的多租户应用程序移动到开发中: 由于这种方法似乎通过handle_子域全局设置了模式搜索路径,请参见下面的每个请求,这对后台作业有何影响 如果我在需要相当长时间的Resque后台作业中设置搜索路径,比如删除S3上托管的一堆回形针图像,会发生什么?这可能会干扰对应用程序的请求,该应用程序在handle_子域中设置路径 我应该修补ActiveRecord以硬编码

我正在Phusion Passenger、Nginx和Postgres 9.1.4上运行Rails 3.2应用程序。我已按照中描述的方法将我的多租户应用程序移动到开发中:

由于这种方法似乎通过handle_子域全局设置了模式搜索路径,请参见下面的每个请求,这对后台作业有何影响

如果我在需要相当长时间的Resque后台作业中设置搜索路径,比如删除S3上托管的一堆回形针图像,会发生什么?这可能会干扰对应用程序的请求,该应用程序在handle_子域中设置路径

我应该修补ActiveRecord以硬编码模式搜索路径吗?例如,从1.1中选择*作为模式路径


谢谢您的帮助。

如果ActiveRecord只是发出SET search\u path=x命令,那么这就是设置每个会话的值,所以您应该没事

事实上,如果在显式事务中设置它,那么如果事务回滚*,它将在事务结束时回滚

澄清了阿拉克尼德的以下评论
如果ActiveRecord只是发出SET search_path=x命令,那么这就是设置每个会话的值,所以您应该可以

事实上,如果在显式事务中设置它,那么如果事务回滚*,它将在事务结束时回滚

澄清了阿拉克尼德的以下评论
最后一点:这是真的,但只有当事务回滚时,我会认为这不是正常情况?最后一点:这是真的,但只有当事务回滚时,我会认为这不是正常情况?
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