require 'yaml'
class UpgradeFromAlchemyFerret < ActiveRecord::Migration
def up not_searchable_elements.each do |element| element['contents'].each do |content| next unless Alchemy::PgSearch.is_searchable_essence?(content) next if content['searchable'].nil? "Alchemy::#{content['type'].classify}".constantize .joins(content: :element) .where(alchemy_contents: {name: content['name']}) .where(alchemy_elements: {name: element['name']}) .update_all(searchable: false) say "Sets searchable to false for `#{content['name']}` contents of `#{element['name']}` elements." end end end private def elements_yml @elements_yml ||= YAML.load_file Rails.root.join('config/alchemy/elements.yml') end def not_searchable_elements elements_yml.select do |element| next if !element['contents'] element['contents'].any? { |content| content['searchable'] == false } end end
end