Sha256: 9cce00b870a306fab9081c6f3142f3df3efa64d119ec3e70c2e7343eb95c0661

Contents?: true

Size: 989 Bytes

Versions: 11

Compression:

Stored size: 989 Bytes

Contents

class SplitPricesFromVariants < ActiveRecord::Migration
  def up
    create_table :spree_prices do |t|
      t.integer :variant_id, null: false
      t.decimal :amount, precision: 8, scale: 2, null: false
      t.string :currency
    end

    Spree::Variant.all.each do |variant|
      Spree::Price.create!(
        variant_id: variant.id,
        amount: variant[:price],
        currency: Spree::Config[:currency]
      )
    end

    remove_column :spree_variants, :price
  end

  def down
    prices = ActiveRecord::Base.connection.execute("select variant_id, amount from spree_prices")
    add_column :spree_variants, :price, :decimal, after: :sku, scale: 2, precision: 8

    prices.each do |price|
      ActiveRecord::Base.connection.execute("update spree_variants set price = #{price['amount']} where id = #{price['variant_id']}")
    end

    change_column :spree_variants, :price, :decimal, after: :sku, scale: 2, precision: 8, null: false
    drop_table :spree_prices
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
solidus_core-1.4.2 db/migrate/20121031162139_split_prices_from_variants.rb
solidus_core-1.3.2 db/migrate/20121031162139_split_prices_from_variants.rb
solidus_core-1.4.1 db/migrate/20121031162139_split_prices_from_variants.rb
solidus_core-1.4.0 db/migrate/20121031162139_split_prices_from_variants.rb
solidus_core-1.4.0.rc1 db/migrate/20121031162139_split_prices_from_variants.rb
solidus_core-1.4.0.beta1 db/migrate/20121031162139_split_prices_from_variants.rb
solidus_core-1.3.1 db/migrate/20121031162139_split_prices_from_variants.rb
solidus_core-1.3.0 db/migrate/20121031162139_split_prices_from_variants.rb
solidus_core-1.3.0.rc2 db/migrate/20121031162139_split_prices_from_variants.rb
solidus_core-1.3.0.rc1 db/migrate/20121031162139_split_prices_from_variants.rb
solidus_core-1.3.0.beta1 db/migrate/20121031162139_split_prices_from_variants.rb