3

現在、テナントを処理するために Apartment および pgSQL スキーマを使用するマルチテナント Rails 4 アプリ内で searchkick を使用しようとしています。ただし、検索キックを機能させることができません。何が間違っているのか正確にはわかりませんが、インデックスを再作成すると、1 つのスキーマでのみインデックスが再作成されるのではないかと考えています。

各スキーマを循環する必要があると考えていますが、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

何か提案があれば教えてください

4

1 に答える 1

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
于 2014-08-15T02:46:10.927 に答える