add include_cfp to splashpage, remove old column, migrate data

This commit is contained in:
Stella Rouzi 2014-11-28 14:51:48 +02:00
parent 2f6fccb912
commit bd570ecb3c
3 changed files with 46 additions and 10 deletions

View file

@ -1,5 +0,0 @@
class RemoveColumnIncludeCfpInSplashFromCfp < ActiveRecord::Migration
def change
remove_column :call_for_papers, :include_cfp_in_splash, :boolean, default: false
end
end

View file

@ -1,5 +0,0 @@
class AddIncludeCfpInSplashpages < ActiveRecord::Migration
def change
add_column :splashpages, :include_cfp, :boolean, default: false
end
end

View file

@ -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