diff --git a/db/migrate/20141127163428_remove_column_include_cfp_in_splash_from_cfp.rb b/db/migrate/20141127163428_remove_column_include_cfp_in_splash_from_cfp.rb deleted file mode 100644 index 4f3519df..00000000 --- a/db/migrate/20141127163428_remove_column_include_cfp_in_splash_from_cfp.rb +++ /dev/null @@ -1,5 +0,0 @@ -class RemoveColumnIncludeCfpInSplashFromCfp < ActiveRecord::Migration - def change - remove_column :call_for_papers, :include_cfp_in_splash, :boolean, default: false - end -end diff --git a/db/migrate/20141127163536_add_include_cfp_in_splashpages.rb b/db/migrate/20141127163536_add_include_cfp_in_splashpages.rb deleted file mode 100644 index d2e7c0d3..00000000 --- a/db/migrate/20141127163536_add_include_cfp_in_splashpages.rb +++ /dev/null @@ -1,5 +0,0 @@ -class AddIncludeCfpInSplashpages < ActiveRecord::Migration - def change - add_column :splashpages, :include_cfp, :boolean, default: false - end -end diff --git a/db/migrate/20141128073306_migrate_data_remove_column_include_cfp_in_splash_add_column_include_cfp.rb b/db/migrate/20141128073306_migrate_data_remove_column_include_cfp_in_splash_add_column_include_cfp.rb new file mode 100644 index 00000000..037cb077 --- /dev/null +++ b/db/migrate/20141128073306_migrate_data_remove_column_include_cfp_in_splash_add_column_include_cfp.rb @@ -0,0 +1,46 @@ +class MigrateDataRemoveColumnIncludeCfpInSplashAddColumnIncludeCfp < ActiveRecord::Migration + class TempConference < ActiveRecord::Base + self.table_name = 'conferences' + end + + class TempCallForPaper< ActiveRecord::Base + self.table_name = 'call_for_papers' + end + + class TempSplashpage < ActiveRecord::Base + self.table_name = 'splashpages' + attr_accessible :conference_id + end + + def up + add_column :splashpages, :include_cfp, :boolean, default: false + + TempConference.all.each do |conference| + cfp = TempCallForPaper.find_by(conference_id: conference.id) + + if cfp && cfp.include_cfp_in_splash + splashpage = TempSplashpage.find_or_initialize_by(conference_id: conference.id) + splashpage.include_cfp = cfp.include_cfp_in_splash # true + splashpage.save! + end + end + + remove_column :call_for_papers, :include_cfp_in_splash, :boolean, default: false + end + + def down + add_column :call_for_papers, :include_cfp_in_splash, :boolean, default: false + + TempConference.all.each do |conference| + splashpage = TempSplashpage.find_by(conference_id: conference.id) + cfp = TempCallForPaper.find_by(conference_id: conference.id) + + if splashpage && cfp + cfp.include_cfp_in_splash = splashpage.include_cfp + cfp.save! + end + end + + remove_column :splashpages, :include_cfp, :boolean, default: false + end +end