Sha256: 2313afb4d3cf6415f0e8fc302d7f3ae57b11d13a9d58f22f3de62a8637b493ec

Contents?: true

Size: 860 Bytes

Versions: 45

Compression:

Stored size: 860 Bytes

Contents

class PolymorphicPayments < ActiveRecord::Migration
  def self.up
    remove_column :payments, :type
    remove_column :payments, :creditcard_id
    rename_column :payments, :order_id, :payable_id
    change_table :payments do |t|
      t.string :payable_type
      t.string :payment_method
      t.references :source, :polymorphic => true
    end
    execute "UPDATE payments SET payable_type = 'Order'"

    Creditcard.all.each do |creditcard|
      if checkout = Checkout.find_by_id(creditcard.checkout_id) and checkout.order
        if payment = checkout.order.payments.first
          execute "UPDATE payments SET source_type = 'Creditcard', source_id = #{creditcard.id} WHERE id = #{payment.id}"
        end
      end
    end

    change_table :creditcards do |t|
      t.remove :checkout_id
    end
  end

  def self.down
    # no going back!
  end
end

Version data entries

45 entries across 33 versions & 8 rubygems

Version Path
spree_core-0.70.7 db/migrate/20100209144531_polymorphic_payments.rb
spree_core-0.70.6 db/migrate/20100209144531_polymorphic_payments.rb
apispree_core-0.0.0 db/migrate/20100209144531_polymorphic_payments.rb
My-Commerce_core-1.1.0 db/migrate/20100209144531_polymorphic_payments.rb
My-Commerce_core-1.0.0 db/migrate/20100209144531_polymorphic_payments.rb
MyCommerceapi-1.0.0 core/spec/test_app/db/migrate/20100209144531_polymorphic_payments.rb
MyCommerceapi-1.0.0 dash/spec/test_app/db/migrate/20100209144531_polymorphic_payments.rb
MyCommerceapi-1.0.0 api/spec/test_app/db/migrate/20100209144531_polymorphic_payments.rb
MyCommerceapi-1.0.0 sandbox/db/migrate/20100209144531_polymorphic_payments.rb
MyCommerceapi-1.0.0 auth/spec/test_app/db/migrate/20100209144531_polymorphic_payments.rb
MyCommerceapi-1.0.0 core/db/migrate/20100209144531_polymorphic_payments.rb
MyCommerceapi-1.0.0 promo/spec/test_app/db/migrate/20100209144531_polymorphic_payments.rb
MyCommerce-0.0.3 sandbox/db/migrate/20100209144531_polymorphic_payments.rb
MyCommerce-0.0.3 api/spec/test_app/db/migrate/20100209144531_polymorphic_payments.rb
MyCommerce-0.0.3 auth/spec/test_app/db/migrate/20100209144531_polymorphic_payments.rb
MyCommerce-0.0.3 core/spec/test_app/db/migrate/20100209144531_polymorphic_payments.rb
MyCommerce-0.0.3 dash/spec/test_app/db/migrate/20100209144531_polymorphic_payments.rb
MyCommerce-0.0.3 promo/spec/test_app/db/migrate/20100209144531_polymorphic_payments.rb
MyCommerce-0.0.3 core/db/migrate/20100209144531_polymorphic_payments.rb
rfcommerce_sandbox-0.0.3 db/migrate/20100209144531_polymorphic_payments.rb