Sha256: 27b0f42b632943fd25e6c2d1f7b120658bd56c19a6bb8e1bb33f9e063268e40e
Contents?: true
Size: 1.57 KB
Versions: 1
Compression:
Stored size: 1.57 KB
Contents
# This migration comes from spree (originally 20170412103617) class TransformTaxRateCategoryRelation < ActiveRecord::Migration[5.0] class TaxRate < ActiveRecord::Base self.table_name = "spree_tax_rates" end class TaxRateTaxCategory < ActiveRecord::Base self.table_name = "spree_tax_rate_tax_categories" end def up create_table :spree_tax_rate_tax_categories do |t| t.integer :tax_category_id, index: true, null: false t.integer :tax_rate_id, index: true, null: false end add_foreign_key :spree_tax_rate_tax_categories, :spree_tax_categories, column: :tax_category_id add_foreign_key :spree_tax_rate_tax_categories, :spree_tax_rates, column: :tax_rate_id TaxRate.where.not(tax_category_id: nil).find_each do |tax_rate| TaxRateTaxCategory.create!( tax_rate_id: tax_rate.id, tax_category_id: tax_rate.tax_category_id ) end remove_column :spree_tax_rates, :tax_category_id end def down add_column :spree_tax_rates, :tax_category_id, :integer, index: true add_foreign_key :spree_tax_rates, :spree_tax_categories, column: :tax_category_id TaxRate.find_each do |tax_rate| tax_category_ids = TaxRateTaxCategory.where(tax_rate_id: tax_rate.id).pluck(:tax_category_id) tax_category_ids.each_with_index do |category_id, i| if i.zero? tax_rate.update!(tax_category_id: category_id) else new_tax_rate = tax_rate.dup new_tax_rate.update!(tax_category_id: category_id) end end end drop_table :spree_tax_rate_tax_categories end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
alchemy-solidus-2.2.0 | spec/dummy/db/migrate/20180910094568_transform_tax_rate_category_relation.spree.rb |