aboutsummaryrefslogtreecommitdiffstats
path: root/db/migrate/20180107152351_replace_title_with_date_bands_venue.refinery_gallery_links.rb
blob: 2f793382242fd41781ef84c5160e07fde7279cd4 (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
33
34
35
36
37
38
# 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: '2000-01-01', 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}) @ ([^.]+).$/
      if m
        g.date = Date.strptime(m[2], '%d/%m/%y')
        g.bands = m[1]
        g.venue = m[3]
      else
        g.date = Date.today
        g.bands = g.title
        g.venue = nil
      end

      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