代码之家  ›  专栏  ›  技术社区  ›  David Mckee

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

  •  3
  • David Mckee  · 技术社区  · 11 年前

    我目前正在尝试在我的多租户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 回复  |  直到 11 年前
        1
  •  0
  •   David Mckee    11 年前

    我能弄明白。我必须执行以下操作并将公寓任务添加到此处:

    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