aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/extensions/gallery_links/db/migrate/2_replace_title_with_date_bands_venue.rb
blob: 01bb93224168b7611167fd8d08c0dd3a1fec70ae (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
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