From 15765cbb1d3d9a55f539458e3190788cc25aaec5 Mon Sep 17 00:00:00 2001 From: Jochen Schalanda Date: Sun, 23 May 2010 14:49:05 +0000 Subject: [PATCH 2/2] Refactored latest migrations to actually migrate date to the new schema. --- ...142706_remove_operatingsystem_id_from_medias.rb | 9 ------ ...0100522143100_create_medias_operatingsystems.rb | 12 --------- ...ate_medias_operatingsystems_and_migrate_data.rb | 27 ++++++++++++++++++++ 3 files changed, 27 insertions(+), 21 deletions(-) delete mode 100644 db/migrate/20100522142706_remove_operatingsystem_id_from_medias.rb delete mode 100644 db/migrate/20100522143100_create_medias_operatingsystems.rb create mode 100644 db/migrate/20100523141204_create_medias_operatingsystems_and_migrate_data.rb diff --git a/db/migrate/20100522142706_remove_operatingsystem_id_from_medias.rb b/db/migrate/20100522142706_remove_operatingsystem_id_from_medias.rb deleted file mode 100644 index 37a694f..0000000 --- a/db/migrate/20100522142706_remove_operatingsystem_id_from_medias.rb +++ /dev/null @@ -1,9 +0,0 @@ -class RemoveOperatingsystemIdFromMedias < ActiveRecord::Migration - def self.up - remove_column :medias, :operatingsystem_id - end - - def self.down - add_column :medias, :operatingsystem_id, :integer - end -end diff --git a/db/migrate/20100522143100_create_medias_operatingsystems.rb b/db/migrate/20100522143100_create_medias_operatingsystems.rb deleted file mode 100644 index 1145fcf..0000000 --- a/db/migrate/20100522143100_create_medias_operatingsystems.rb +++ /dev/null @@ -1,12 +0,0 @@ -class CreateMediasOperatingsystems < ActiveRecord::Migration - def self.up - create_table :medias_operatingsystems , :id => false do |t| - t.references :media, :null => false - t.references :operatingsystem, :null => false - end - end - - def self.down - drop_table :medias_operatingsystems - end -end diff --git a/db/migrate/20100523141204_create_medias_operatingsystems_and_migrate_data.rb b/db/migrate/20100523141204_create_medias_operatingsystems_and_migrate_data.rb new file mode 100644 index 0000000..bc322d4 --- /dev/null +++ b/db/migrate/20100523141204_create_medias_operatingsystems_and_migrate_data.rb @@ -0,0 +1,27 @@ +class CreateMediasOperatingsystemsAndMigrateData < ActiveRecord::Migration + def self.up + create_table :medias_operatingsystems , :id => false do |t| + t.references :media, :null => false + t.references :operatingsystem, :null => false + end + + media_hash = Hash.new + Media.all.each { |medium| + unless medium.operatingsystem_id.nil? + os = Operatingsystem.find(medium.operatingsystem_id) + media_hash[os] = medium + end + } + + media_hash.keys.each { |os| + os.medias << media_hash[os] + } + + remove_column :medias, :operatingsystem_id + end + + def self.down + add_column :medias, :operatingsystem_id, :integer + drop_table :medias_operatingsystems + end +end -- 1.6.3.3