From 2951f5621b7c95b66b134a9c655d915459ae6a2c Mon Sep 17 00:00:00 2001 From: Fabio Teixeira Date: Fri, 4 Sep 2015 15:13:49 -0300 Subject: [PATCH] Add migration to swap blocks between areas 2 and 3 --- db/migrate/20150904174335_swap_softwares_blocks_between_areas_2_and_3.rb | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+), 0 deletions(-) create mode 100644 db/migrate/20150904174335_swap_softwares_blocks_between_areas_2_and_3.rb diff --git a/db/migrate/20150904174335_swap_softwares_blocks_between_areas_2_and_3.rb b/db/migrate/20150904174335_swap_softwares_blocks_between_areas_2_and_3.rb new file mode 100644 index 0000000..7c24bf5 --- /dev/null +++ b/db/migrate/20150904174335_swap_softwares_blocks_between_areas_2_and_3.rb @@ -0,0 +1,32 @@ +class SwapSoftwaresBlocksBetweenAreas2And3 < ActiveRecord::Migration + def up + swap_software_blocks_between_areas_2_and_3 + end + + def down + swap_software_blocks_between_areas_2_and_3 + end + + def swap_software_blocks_between_areas_2_and_3 + Community.joins(:software_info).each do |software_community| + print "." + + # Get areas 2 and 3 + box_area_two = software_community.boxes.find_by_position 2 + box_area_three = software_community.boxes.find_by_position 3 + + # Get all ids of blocks from areas 2 and 3 + blocks_ids_from_area_two = box_area_two.blocks.select(:id).map(&:id) + blocks_ids_from_area_three = box_area_three.blocks.select(:id).map(&:id) + + # Swap blocks from area 2 to 3 + Block.update_all({:box_id=>box_area_three.id}, ["id IN (?)", blocks_ids_from_area_two]) + + # Swap blocks from area 3 to 2 + Block.update_all({:box_id=>box_area_two.id}, ["id IN (?)", blocks_ids_from_area_three]) + end + + puts "" + end +end + -- libgit2 0.21.2