# This migration comes from spree (originally 20121031162139) class SplitPricesFromVariants < ActiveRecord::Migration[4.2] 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 = ApplicationRecord.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| ApplicationRecord.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