Sha256: de45d7b4a210aaa772ca4dc2b48dd63c51b39cc7e629676aa371184f8aa69007

Contents?: true

Size: 1.07 KB

Versions: 61

Compression:

Stored size: 1.07 KB

Contents

class ChangeContactDetails < ActiveRecord::Migration
  def up
    add_column :spotlight_contacts, :contact_info, :text

    Spotlight::Contact.find_each do |contact|
      migrated_contact_info = {}
      attributes.each do |attribute|
        if (value = contact.send(attribute)).present?
          migrated_contact_info[attribute] = value
        end
      end
      contact.contact_info = migrated_contact_info
      contact.save!
    end

    attributes.each do |col|
      remove_column :spotlight_contacts, col, :string if Spotlight::Contact.column_names.include? col
    end
  end
  def down
    attributes.each do |attribute|
      add_column :spotlight_contacts, col, :string
    end

    Spotlight::Contact.find_each do |contact|
      attributes.each do |attribute|
        if (value = contact.contact_info[attribute]).present?
          contact.send("#{attribute}=".to_sym, value)
        end
      end
      contact.save!
    end

    remove_column :spotlight_contacts, :contact_info, :text
  end
  private
  def attributes
    [:email, :title, :location, :telephone]
  end
end

Version data entries

61 entries across 61 versions & 1 rubygems

Version Path
blacklight-spotlight-0.34.1 db/migrate/20141118233735_change_contact_details.rb
blacklight-spotlight-0.34.0 db/migrate/20141118233735_change_contact_details.rb
blacklight-spotlight-0.33.3 db/migrate/20141118233735_change_contact_details.rb
blacklight-spotlight-0.33.2 db/migrate/20141118233735_change_contact_details.rb
blacklight-spotlight-0.33.1 db/migrate/20141118233735_change_contact_details.rb
blacklight-spotlight-0.33.0 db/migrate/20141118233735_change_contact_details.rb
blacklight-spotlight-0.32.0 db/migrate/20141118233735_change_contact_details.rb
blacklight-spotlight-0.31.0 db/migrate/20141118233735_change_contact_details.rb
blacklight-spotlight-0.30.0 db/migrate/20141118233735_change_contact_details.rb
blacklight-spotlight-0.29.1 db/migrate/20141118233735_change_contact_details.rb
blacklight-spotlight-0.29.0 db/migrate/20141118233735_change_contact_details.rb
blacklight-spotlight-0.28.3 db/migrate/20141118233735_change_contact_details.rb
blacklight-spotlight-0.28.2 db/migrate/20141118233735_change_contact_details.rb
blacklight-spotlight-0.28.1 db/migrate/20141118233735_change_contact_details.rb
blacklight-spotlight-0.28.0 db/migrate/20141118233735_change_contact_details.rb
blacklight-spotlight-0.27.0 db/migrate/20141118233735_change_contact_details.rb
blacklight-spotlight-0.26.1 db/migrate/20141118233735_change_contact_details.rb
blacklight-spotlight-0.26.0 db/migrate/20141118233735_change_contact_details.rb
blacklight-spotlight-0.25.0 db/migrate/20141118233735_change_contact_details.rb
blacklight-spotlight-0.24.0 db/migrate/20141118233735_change_contact_details.rb