aboutsummaryrefslogtreecommitdiffstats
path: root/db/migrate/20180107152351_replace_title_with_date_bands_venue.refinery_gallery_links.rb
blob: 8e2fcbda0ceb15dd55509b6c92ad7a46c59f0b2c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# This migration comes from refinery_gallery_links (originally 2)
class ReplaceTitleWithDateBandsVenue < ActiveRecord::Migration
  def up
    add_column :refinery_gallery_links, :date, :date, null: false, default: '0000-00-00', index: true
    add_column :refinery_gallery_links, :bands, :string, null: false, default: 'Unkown 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