about summary refs log tree commit diff stats
path: root/db/migrate/20180113200119_move_species_to_revision.rb
blob: 9f84c512e17d50bc1a035497a5c263a7d047276c (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
39
class MoveSpeciesToRevision < ActiveRecord::Migration[5.1]
  def up
    change_table :revisions do |t|
      t.references :species, null: true
    end

    Pokeviewer::Revision.all.each do |r|
      r.species_id = r.pokemon.species_id
      r.save!
    end

    remove_column :pokemon, :species_id

    change_column_null :revisions, :species_id, false

    add_foreign_key :revisions, :species,
      column: :species_id
  end

  def down
    def up
      change_table :pokemon do |t|
        t.references :species, null: true
      end

      Pokeviewer::Pokemon.all.each do |p|
        p.species_id = p.revisions.first.species_id
        p.save!
      end

      remove_column :revisions, :species_id

      change_column_null :pokemon, :species_id, false

      add_foreign_key :pokemon, :species,
        column: :species_id
    end
  end
end