From f6cdc2fd2f50224fb7dd31d3ccb374cf4ffe7b6d Mon Sep 17 00:00:00 2001 From: Kelly Rauchenberger Date: Sat, 23 Sep 2017 10:30:23 -0400 Subject: Moved revision moves into revision table This is a retroactive schema change, so there's no easy way to migrate into it without losing data, but this is so early into the development of this project that it really doesn't matter. --- app/models/pokeviewer/revision.rb | 33 ++++++++++++-- app/models/pokeviewer/revision_move.rb | 19 -------- .../20170917002857_create_pokeviewer_revisions.rb | 31 ------------- ...70917011258_create_pokeviewer_revision_moves.rb | 20 --------- .../20170917011258_create_pokeviewer_revisions.rb | 51 ++++++++++++++++++++++ test/dummy/db/schema.rb | 24 +++++----- 6 files changed, 92 insertions(+), 86 deletions(-) delete mode 100644 app/models/pokeviewer/revision_move.rb delete mode 100644 db/migrate/20170917002857_create_pokeviewer_revisions.rb delete mode 100644 db/migrate/20170917011258_create_pokeviewer_revision_moves.rb create mode 100644 db/migrate/20170917011258_create_pokeviewer_revisions.rb diff --git a/app/models/pokeviewer/revision.rb b/app/models/pokeviewer/revision.rb index a8f8ab2..9d1ddf4 100644 --- a/app/models/pokeviewer/revision.rb +++ b/app/models/pokeviewer/revision.rb @@ -3,10 +3,6 @@ module Pokeviewer belongs_to :pokemon acts_as_sequenced scope: :pokemon_id - has_many :revision_moves, -> { order "number ASC" } - has_many :moves, through: :revision_moves - - validates :moves, presence: true validates :nickname, presence: true validates :experience, presence: true, @@ -68,5 +64,34 @@ module Pokeviewer greater_than_or_equal_to: 0, less_than_or_equal_to: 10, only_integer: true } + + belongs_to :move_1, class_name: "Move" + belongs_to :move_2, class_name: "Move", optional: true + belongs_to :move_3, class_name: "Move", optional: true + belongs_to :move_4, class_name: "Move", optional: true + + validates :move_1_pp_bonuses, presence: true, + numericality: { + greater_than_or_equal_to: 0, + less_than_or_equal_to: 3, + only_integer: true} + + validates :move_2_pp_bonuses, presence: true, + numericality: { + greater_than_or_equal_to: 0, + less_than_or_equal_to: 3, + only_integer: true} + + validates :move_3_pp_bonuses, presence: true, + numericality: { + greater_than_or_equal_to: 0, + less_than_or_equal_to: 3, + only_integer: true} + + validates :move_4_pp_bonuses, presence: true, + numericality: { + greater_than_or_equal_to: 0, + less_than_or_equal_to: 3, + only_integer: true} end end diff --git a/app/models/pokeviewer/revision_move.rb b/app/models/pokeviewer/revision_move.rb deleted file mode 100644 index 74b9e9e..0000000 --- a/app/models/pokeviewer/revision_move.rb +++ /dev/null @@ -1,19 +0,0 @@ -module Pokeviewer - class RevisionMove < ApplicationRecord - belongs_to :revision - belongs_to :move - - validates :number, presence: true, - numericality: { - greater_than_or_equal_to: 1, - less_than_or_equal_to: 4, - only_integer: true }, - uniqueness: { scope: :revision_id } - - validates :pp_bonuses, presence: true, - numericality: { - greater_than_or_equal_to: 0, - less_than_or_equal_to: 3, - only_integer: true} - end -end diff --git a/db/migrate/20170917002857_create_pokeviewer_revisions.rb b/db/migrate/20170917002857_create_pokeviewer_revisions.rb deleted file mode 100644 index f6755da..0000000 --- a/db/migrate/20170917002857_create_pokeviewer_revisions.rb +++ /dev/null @@ -1,31 +0,0 @@ -class CreatePokeviewerRevisions < ActiveRecord::Migration[5.1] - def change - create_table :pokeviewer_revisions do |t| - t.references :pokemon, null: false - t.integer :sequential_id, null: false - t.string :nickname, null: false - t.integer :experience, null: false - t.integer :level, null: false - t.integer :hp, null: false - t.integer :attack, null: false - t.integer :defense, null: false - t.integer :special_attack, null: false - t.integer :special_defense, null: false - t.integer :speed, null: false - t.integer :coolness, null: false - t.integer :beauty, null: false - t.integer :cuteness, null: false - t.integer :smartness, null: false - t.integer :toughness, null: false - t.integer :sheen, null: false - t.integer :hold_item, null: true - - t.timestamps - end - - add_index :pokeviewer_revisions, [:pokemon_id, :sequential_id], unique: true - - add_foreign_key :pokeviewer_revisions, :pokewalker_pokemon, - column: :pokemon_id - end -end diff --git a/db/migrate/20170917011258_create_pokeviewer_revision_moves.rb b/db/migrate/20170917011258_create_pokeviewer_revision_moves.rb deleted file mode 100644 index e061207..0000000 --- a/db/migrate/20170917011258_create_pokeviewer_revision_moves.rb +++ /dev/null @@ -1,20 +0,0 @@ -class CreatePokeviewerRevisionMoves < ActiveRecord::Migration[5.1] - def change - create_table :pokeviewer_revision_moves do |t| - t.references :revision, null: false - t.references :move, null: false - t.integer :number, null: false - t.integer :pp_bonuses, null: false, default: 0 - - t.timestamps - end - - add_index :pokeviewer_revision_moves, [:revision_id, :number], unique: true - - add_foreign_key :pokeviewer_revision_moves, :pokeviewer_revisions, - column: :revision_id - - add_foreign_key :pokeviewer_revision_moves, :pokeviewer_moves, - column: :move_id - end -end diff --git a/db/migrate/20170917011258_create_pokeviewer_revisions.rb b/db/migrate/20170917011258_create_pokeviewer_revisions.rb new file mode 100644 index 0000000..faa3532 --- /dev/null +++ b/db/migrate/20170917011258_create_pokeviewer_revisions.rb @@ -0,0 +1,51 @@ +class CreatePokeviewerRevisions < ActiveRecord::Migration[5.1] + def change + create_table :pokeviewer_revisions do |t| + t.references :pokemon, null: false + t.integer :sequential_id, null: false + t.string :nickname, null: false + t.integer :experience, null: false + t.integer :level, null: false + t.integer :hp, null: false + t.integer :attack, null: false + t.integer :defense, null: false + t.integer :special_attack, null: false + t.integer :special_defense, null: false + t.integer :speed, null: false + t.integer :coolness, null: false + t.integer :beauty, null: false + t.integer :cuteness, null: false + t.integer :smartness, null: false + t.integer :toughness, null: false + t.integer :sheen, null: false + t.integer :hold_item, null: true + t.references :move_1, null: false + t.references :move_2, null: true + t.references :move_3, null: true + t.references :move_4, null: true + t.integer :move_1_pp_bonuses, null: false, default: 0 + t.integer :move_2_pp_bonuses, null: false, default: 0 + t.integer :move_3_pp_bonuses, null: false, default: 0 + t.integer :move_4_pp_bonuses, null: false, default: 0 + + t.timestamps + end + + add_index :pokeviewer_revisions, [:pokemon_id, :sequential_id], unique: true + + add_foreign_key :pokeviewer_revisions, :pokewalker_pokemon, + column: :pokemon_id + + add_foreign_key :pokeviewer_revisions, :pokewalker_moves, + column: :move_1_id + + add_foreign_key :pokeviewer_revisions, :pokewalker_moves, + column: :move_2_id + + add_foreign_key :pokeviewer_revisions, :pokewalker_moves, + column: :move_3_id + + add_foreign_key :pokeviewer_revisions, :pokewalker_moves, + column: :move_4_id + end +end diff --git a/test/dummy/db/schema.rb b/test/dummy/db/schema.rb index 4b5ad80..ef8b1ae 100644 --- a/test/dummy/db/schema.rb +++ b/test/dummy/db/schema.rb @@ -43,18 +43,6 @@ ActiveRecord::Schema.define(version: 20170917011258) do t.index ["uuid"], name: "index_pokeviewer_pokemon_on_uuid", unique: true end - create_table "pokeviewer_revision_moves", force: :cascade do |t| - t.integer "revision_id", null: false - t.integer "move_id", null: false - t.integer "number", null: false - t.integer "pp_bonuses", default: 0, null: false - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.index ["move_id"], name: "index_pokeviewer_revision_moves_on_move_id" - t.index ["revision_id", "number"], name: "index_pokeviewer_revision_moves_on_revision_id_and_number", unique: true - t.index ["revision_id"], name: "index_pokeviewer_revision_moves_on_revision_id" - end - create_table "pokeviewer_revisions", force: :cascade do |t| t.integer "pokemon_id", null: false t.integer "sequential_id", null: false @@ -74,8 +62,20 @@ ActiveRecord::Schema.define(version: 20170917011258) do t.integer "toughness", null: false t.integer "sheen", null: false t.integer "hold_item" + t.integer "move_1_id", null: false + t.integer "move_2_id" + t.integer "move_3_id" + t.integer "move_4_id" + t.integer "move_1_pp_bonuses", default: 0, null: false + t.integer "move_2_pp_bonuses", default: 0, null: false + t.integer "move_3_pp_bonuses", default: 0, null: false + t.integer "move_4_pp_bonuses", default: 0, null: false t.datetime "created_at", null: false t.datetime "updated_at", null: false + t.index ["move_1_id"], name: "index_pokeviewer_revisions_on_move_1_id" + t.index ["move_2_id"], name: "index_pokeviewer_revisions_on_move_2_id" + t.index ["move_3_id"], name: "index_pokeviewer_revisions_on_move_3_id" + t.index ["move_4_id"], name: "index_pokeviewer_revisions_on_move_4_id" t.index ["pokemon_id", "sequential_id"], name: "index_pokeviewer_revisions_on_pokemon_id_and_sequential_id", unique: true t.index ["pokemon_id"], name: "index_pokeviewer_revisions_on_pokemon_id" end -- cgit 1.4.1