Sha256: c8c7ec9ef64a658a65b08a11a854193ee5fd3e31aaa0152c59a938be58f9a1b1

Contents?: true

Size: 1.56 KB

Versions: 24

Compression:

Stored size: 1.56 KB

Contents

class Checkout < ActiveRecord::Base; end;

# Hack to prevent issues with legacy migrations
class Order < ActiveRecord::Base
  has_one :checkout
end

class ChargeRefactoring < ActiveRecord::Migration
  def up
    # Temporarily set table name for legacy support
    Spree::Adjustment.table_name = 'adjustments'

    add_column :orders, :completed_at, :timestamp
    Order.reset_column_information
    Order.all.each { |o| o.update_attribute(:completed_at, o.checkout && o.checkout.read_attribute(:completed_at)) }
    remove_column :checkouts, :completed_at

    change_column :adjustments, :amount, :decimal, :null => true, :default => nil, :precision => 8, :scale => 2
    Spree::Adjustment.update_all :type => 'secondary_type'
    Spree::Adjustment.where(:type => 'Credit').update_all(:type => 'CouponCredit')
    remove_column :adjustments, :secondary_type

    # Reset table name
    Spree::Adjustment.table_name = 'spree_adjustments'
  end

  def down
    add_column :checkouts, :completed_at, :timestamp
    Spree::Checkout.reset_column_information
    Spree::Checkout.all.each { |c| c.update_attribute(:completed_at, c.order && c.order.completed_at) }
    remove_column :orders, :completed_at

    add_column :adjustments, :secondary_type, :string
    Spree::Adjustment.update_all :secondary_type => 'type'
    Spree::Adjustment.where('type LIKE ?', '%Charge').update_all(:type => 'Charge')
    Spree::Adjustment.where('type LIKE ?', '%Credit').update_all(:type => 'Credit')
    change_column :adjustments, :amount, :decimal, :null => false, :default => 0, :precision => 8, :scale => 2
  end
end

Version data entries

24 entries across 24 versions & 3 rubygems

Version Path
spree_core-1.0.7 db/migrate/20091021133257_charge_refactoring.rb
spree_core-1.0.6 db/migrate/20091021133257_charge_refactoring.rb
spree_pag_seguro-1.0.7 spec/dummy/db/migrate/20120301154060_charge_refactoring.rb
spree_core-1.1.2 db/migrate/20091021133257_charge_refactoring.rb
spree_core-1.1.2.rc1 db/migrate/20091021133257_charge_refactoring.rb
spree_pag_seguro-1.0.6 spec/dummy/db/migrate/20120301154060_charge_refactoring.rb
spree_pag_seguro-1.0.5 spec/dummy/db/migrate/20120301154060_charge_refactoring.rb
spree_pag_seguro-1.0.4 spec/dummy/db/migrate/20120301154060_charge_refactoring.rb
spree_core-1.1.1 db/migrate/20091021133257_charge_refactoring.rb
spree_core-1.1.0 db/migrate/20091021133257_charge_refactoring.rb
spree_core-1.0.4 db/migrate/20091021133257_charge_refactoring.rb
spree_core-1.1.0.rc2 db/migrate/20091021133257_charge_refactoring.rb
spree_core-1.1.0.rc1 db/migrate/20091021133257_charge_refactoring.rb
spree_pag_seguro-1.0.3 spec/dummy/db/migrate/20120301154060_charge_refactoring.rb
spree_pag_seguro-1.0.2 spec/dummy/db/migrate/20120301154060_charge_refactoring.rb
spree_core-1.0.3 db/migrate/20091021133257_charge_refactoring.rb
spree_core-1.0.2 db/migrate/20091021133257_charge_refactoring.rb
spree_core-1.0.1 db/migrate/20091021133257_charge_refactoring.rb
spree_flat_in_range-0.1.0 spec/dummy/db/migrate/20120218160367_charge_refactoring.rb
spree_core-1.0.0 db/migrate/20091021133257_charge_refactoring.rb