如何将searchkick与pgSQL架构/单元一起使用并循环使用模式?

时间:2014-08-15 01:14:04

标签: ruby-on-rails postgresql multi-tenant searchkick apartment-gem

我目前正在尝试在我的多租户Rails 4应用程序中使用searchkick,该应用程序使用Apartment和pgSQL架构来处理租赁。但是,我无法让searchkick工作。我不确定我做错了什么,但我想可能是当我重新索引时,它只能重新索引一个模式。

我在想我需要遍历每个架构,但我不确定如何在Apartment中执行此操作。他们似乎自动进行迁移,但我试图让它与searchkick一起使用。我想从searchkick编辑下面的rake任务:

require 'rake'

namespace :searchkick do 

    task :reindex => :environment do
    if ENV["CLASS"]
      klass = ENV["CLASS"].constantize rescue nil
      if klass
        klass.reindex
      else
        abort "Could not find class: #{ENV["CLASS"]}"
      end
    else
      abort "USAGE: rake searchkick:reindex CLASS=Product"
    end
  end

end

如果您有任何建议,请告诉我

1 个答案:

答案 0 :(得分:0)

我能够弄清楚。我必须执行以下操作并将Apartment任务添加到此处:

require 'rake'
require 'apartment/migrator'

namespace :searchkick do 
    task :reindex => :environment do
        tenants.each do |tenant|

            Apartment::Tenant.switch(tenant)
            p 'switched'
        if ENV["CLASS"]
          klass = ENV["CLASS"].constantize rescue nil
          if klass
            klass.reindex
          else
            abort "Could not find class: #{ENV["CLASS"]}"
          end
        else
          abort "USAGE: rake searchkick:reindex CLASS=Product"
        end
    end
    end

end