class ReplaceTitleWithDateBandsVenue < ActiveRecord::Migration def up add_column :refinery_gallery_links, :date, :date, null: false, default: '2000-01-01', index: true add_column :refinery_gallery_links, :bands, :string, null: false, default: 'Unknown bands', index: true add_column :refinery_gallery_links, :venue, :string, index: true Refinery::GalleryLinks::GalleryLink.all.each do |g| m = g.title.match /^(.+) (\d{2}\/\d{2}\/\d{2}) @ ([^.]+).$/ g.date = Date.strptime(m[2], '%d/%m/%y') g.bands = m[1] g.venue = m[3] g.save! end remove_column :refinery_gallery_links, :title end def down add_column :refineru_gallery_links, title, index: true Refinery::GalleryLinks::GalleryLink.all.each do |g| g.title = "#{g.bands} #{g.strftime('%d/%m/%y')} @ #{g.venue}." g.save! end remove_column :refinery_gallery_links, :venue remove_column :refinery_gallery_links, :bands remove_column :refinery_gallery_links, :date end end