Sha256: 614e2acbfc778a677a7c9ae6a5d5a3bdeda7aab0cb58676e1d05c29dcc1aae2a

Contents?: true

Size: 1.77 KB

Versions: 16

Compression:

Stored size: 1.77 KB

Contents

class CreateAddresses < ActiveRecord::Migration
  def self.up
    create_table :addresses do |t|
      t.string :street1
      t.string :street2
      t.string :city,    :limit => 64
      t.string :state,   :limit => 64
      t.string :zipcode, :limit => 16
      t.string :country, :limit => 64
      t.string :full_address
      t.string :address_type, :limit => 16

      t.references :addressable, :polymorphic => true

      t.timestamps
      t.datetime :deleted_at
    end

    add_index :addresses, [ :addressable_id, :addressable_type ]

    # Migrate data from assets to Address table into full_address blob
    Contact.find(:all).each do |asset|
      Address.create(:street1 => asset.address, :full_address => asset.address, :address_type => "Business", :addressable => asset)
    end

    Account.find(:all).each do |asset|
      Address.create(:street1 => asset.billing_address, :full_address => asset.billing_address, :address_type => "Billing", :addressable => asset)
      Address.create(:street1 => asset.shipping_address, :full_address => asset.shipping_address, :address_type => "Shipping", :addressable => asset)
    end

    Lead.find(:all).each do |asset|
      Address.create(:street1 => asset.address, :full_address => asset.address, :address_type => "Business", :addressable => asset)
    end

    # Remove addresses columns from assets allready migrated
    remove_column(:contacts, :address)
    remove_column(:accounts, :billing_address)
    remove_column(:accounts, :shipping_address)
    remove_column(:leads,    :address)

  end

  def self.down
    drop_table :addresses
    add_column(:contacts, :address, :string)
    add_column(:accounts, :billing_address, :string)
    add_column(:accounts, :shipping_address, :string)
    add_column(:leads,    :address, :string)
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
fat_free_crm-0.13.6 db/migrate/20100928030623_create_addresses.rb
fat_free_crm-0.13.5 db/migrate/20100928030623_create_addresses.rb
fat_free_crm-0.13.4 db/migrate/20100928030623_create_addresses.rb
fat_free_crm-0.13.3 db/migrate/20100928030623_create_addresses.rb
fat_free_crm-0.13.2 db/migrate/20100928030623_create_addresses.rb
fat_free_crm-0.12.3 db/migrate/20100928030623_create_addresses.rb
fat_free_crm-0.12.2 db/migrate/20100928030623_create_addresses.rb
fat_free_crm-0.13.1 db/migrate/20100928030623_create_addresses.rb
fat_free_crm-0.12.1 db/migrate/20100928030623_create_addresses.rb
fat_free_crm-0.13.0 db/migrate/20100928030623_create_addresses.rb
fat_free_crm-0.12.0 db/migrate/20100928030623_create_addresses.rb
fat_free_crm-0.11.4 db/migrate/20100928030623_create_addresses.rb
fat_free_crm-0.11.3 db/migrate/20100928030623_create_addresses.rb
fat_free_crm-0.11.2 db/migrate/20100928030623_create_addresses.rb
fat_free_crm-0.11.1 db/migrate/20100928030623_create_addresses.rb
fat_free_crm-0.11.0 db/migrate/20100928030623_create_addresses.rb