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