Skip to content

Commit

Permalink
Tweak SQL migration for PostgreSQL [spree#1273]
Browse files Browse the repository at this point in the history
  • Loading branch information
Trung Lê committed Mar 15, 2012
1 parent 5da0d97 commit 2faf9aa
Showing 1 changed file with 11 additions and 13 deletions.
@@ -1,36 +1,34 @@
class MigrateImagesFromProductsToVariants < ActiveRecord::Migration
def up
images = select_all('SELECT spree_assets.* FROM spree_assets
WHERE spree_assets.type IN ("Spree::Image")
AND spree_assets.viewable_type = "Spree::Product"')
images = select_all("SELECT spree_assets.* FROM spree_assets
WHERE spree_assets.type IN ('Spree::Image')
AND spree_assets.viewable_type = 'Spree::Product'")

images.each do |image|
master_variant_id = select_value("SELECT id FROM spree_variants
WHERE product_id = #{image['viewable_id']}
AND is_master = 't'")

execute("UPDATE spree_assets SET viewable_type = 'Spree::Variant',
viewable_id = #{master_variant_id}
execute("UPDATE spree_assets SET viewable_type = 'Spree::Variant', viewable_id = #{master_variant_id}
WHERE id = #{image['id']}") if master_variant_id
end
end

def down
images = select_all('SELECT spree_assets.* FROM spree_assets
JOIN spree_variants
ON spree_variants.id = spree_assets.viewable_id
AND spree_variants.is_master = "t"
WHERE spree_assets.type IN ("Spree::Image")
AND spree_assets.viewable_type = "Spree::Variant"')
images = select_all("SELECT spree_assets.* FROM spree_assets
JOIN spree_variants
ON spree_variants.id = spree_assets.viewable_id
AND spree_variants.is_master = 't'
WHERE spree_assets.type IN ('Spree::Image')
AND spree_assets.viewable_type = 'Spree::Variant'")

images.each do |image|
product_id = select_value("SELECT spree_products.id FROM spree_products
JOIN spree_variants
ON spree_variants.id = #{image['viewable_id']}
AND spree_products.id = spree_variants.product_id")

execute("UPDATE spree_assets SET viewable_type = 'Spree::Product',
viewable_id = #{product_id}
execute("UPDATE spree_assets SET viewable_type = 'Spree::Product', viewable_id = #{product_id}
WHERE id = #{image['id']}") if product_id
end
end
Expand Down

0 comments on commit 2faf9aa

Please sign in to comment.