diff options
| author | Kelly Rauchenberger <fefferburbia@gmail.com> | 2017-10-03 16:18:46 -0400 |
|---|---|---|
| committer | Kelly Rauchenberger <fefferburbia@gmail.com> | 2017-10-03 16:18:46 -0400 |
| commit | 4bc96847f621c4cb3940fe99b3b4b67b20596189 (patch) | |
| tree | c5b0e651e1ed0663a5eabc29966ca9778cdcd5eb /db | |
| parent | b618e52428bb659cb1fe3bdbe3d3763d48b4556c (diff) | |
| download | pokeviewer-4bc96847f621c4cb3940fe99b3b4b67b20596189.tar.gz pokeviewer-4bc96847f621c4cb3940fe99b3b4b67b20596189.tar.bz2 pokeviewer-4bc96847f621c4cb3940fe99b3b4b67b20596189.zip | |
Removed box model
It seemed kind of strange to have a model that there should always be exactly 14 of for each of the parent (Trainer) model instances, so the box names were moved into the Trainer model, and the Box model was removed. This commit also adds some eager loading to speed up page loading times. Also made a small change to the way the gift ribbons are extracted. refs #2
Diffstat (limited to 'db')
| -rw-r--r-- | db/migrate/20171003191205_remove_boxes.rb | 106 |
1 files changed, 106 insertions, 0 deletions
| diff --git a/db/migrate/20171003191205_remove_boxes.rb b/db/migrate/20171003191205_remove_boxes.rb new file mode 100644 index 0000000..476b98a --- /dev/null +++ b/db/migrate/20171003191205_remove_boxes.rb | |||
| @@ -0,0 +1,106 @@ | |||
| 1 | class RemoveBoxes < ActiveRecord::Migration[5.1] | ||
| 2 | def up | ||
| 3 | change_table :pokeviewer_trainers do |t| | ||
| 4 | t.string :box_1_name, null: false, default: "" | ||
| 5 | t.string :box_2_name, null: false, default: "" | ||
| 6 | t.string :box_3_name, null: false, default: "" | ||
| 7 | t.string :box_4_name, null: false, default: "" | ||
| 8 | t.string :box_5_name, null: false, default: "" | ||
| 9 | t.string :box_6_name, null: false, default: "" | ||
| 10 | t.string :box_7_name, null: false, default: "" | ||
| 11 | t.string :box_8_name, null: false, default: "" | ||
| 12 | t.string :box_9_name, null: false, default: "" | ||
| 13 | t.string :box_10_name, null: false, default: "" | ||
| 14 | t.string :box_11_name, null: false, default: "" | ||
| 15 | t.string :box_12_name, null: false, default: "" | ||
| 16 | t.string :box_13_name, null: false, default: "" | ||
| 17 | t.string :box_14_name, null: false, default: "" | ||
| 18 | end | ||
| 19 | |||
| 20 | change_column_default :pokeviewer_trainers, :box_1_name, nil | ||
| 21 | change_column_default :pokeviewer_trainers, :box_2_name, nil | ||
| 22 | change_column_default :pokeviewer_trainers, :box_3_name, nil | ||
| 23 | change_column_default :pokeviewer_trainers, :box_4_name, nil | ||
| 24 | change_column_default :pokeviewer_trainers, :box_5_name, nil | ||
| 25 | change_column_default :pokeviewer_trainers, :box_6_name, nil | ||
| 26 | change_column_default :pokeviewer_trainers, :box_7_name, nil | ||
| 27 | change_column_default :pokeviewer_trainers, :box_8_name, nil | ||
| 28 | change_column_default :pokeviewer_trainers, :box_9_name, nil | ||
| 29 | change_column_default :pokeviewer_trainers, :box_10_name, nil | ||
| 30 | change_column_default :pokeviewer_trainers, :box_11_name, nil | ||
| 31 | change_column_default :pokeviewer_trainers, :box_12_name, nil | ||
| 32 | change_column_default :pokeviewer_trainers, :box_13_name, nil | ||
| 33 | change_column_default :pokeviewer_trainers, :box_14_name, nil | ||
| 34 | |||
| 35 | Pokeviewer::Trainer.all.each do |t| | ||
| 36 | boxes = ActiveRecord::Base.connection.select_all( | ||
| 37 | "SELECT * FROM pokeviewer_boxes WHERE trainer_id = ? ORDER BY number ASC", | ||
| 38 | t.trainer_id).map { |b| b["name"] } | ||
| 39 | |||
| 40 | t.box_1_name = boxes.shift | ||
| 41 | t.box_2_name = boxes.shift | ||
| 42 | t.box_3_name = boxes.shift | ||
| 43 | t.box_4_name = boxes.shift | ||
| 44 | t.box_5_name = boxes.shift | ||
| 45 | t.box_6_name = boxes.shift | ||
| 46 | t.box_7_name = boxes.shift | ||
| 47 | t.box_8_name = boxes.shift | ||
| 48 | t.box_9_name = boxes.shift | ||
| 49 | t.box_10_name = boxes.shift | ||
| 50 | t.box_11_name = boxes.shift | ||
| 51 | t.box_12_name = boxes.shift | ||
| 52 | t.box_13_name = boxes.shift | ||
| 53 | t.box_14_name = boxes.shift | ||
| 54 | |||
| 55 | t.save | ||
| 56 | end | ||
| 57 | |||
| 58 | drop_table :pokeviewer_boxes | ||
| 59 | end | ||
| 60 | |||
| 61 | def down | ||
| 62 | create_table :pokeviewer_boxes do |t| | ||
| 63 | t.integer "trainer_id", null: false | ||
| 64 | t.integer "number", null: false | ||
| 65 | t.string "name", null: false | ||
| 66 | |||
| 67 | t.timestamps | ||
| 68 | end | ||
| 69 | |||
| 70 | add_index :pokeviewer_boxes, [:trainer_id, :number], unique: true | ||
| 71 | |||
| 72 | add_foreign_key :pokeviewer_boxes, :pokeviewer_trainers, column: :trainer_id | ||
| 73 | |||
| 74 | Pokeviewer::Trainer.all.each do |t| | ||
| 75 | Pokeviewer::Box.create(trainer_id: t.trainer_id, number: 1, name: t.box_1_name) | ||
| 76 | Pokeviewer::Box.create(trainer_id: t.trainer_id, number: 2, name: t.box_2_name) | ||
| 77 | Pokeviewer::Box.create(trainer_id: t.trainer_id, number: 3, name: t.box_3_name) | ||
| 78 | Pokeviewer::Box.create(trainer_id: t.trainer_id, number: 4, name: t.box_4_name) | ||
| 79 | Pokeviewer::Box.create(trainer_id: t.trainer_id, number: 5, name: t.box_5_name) | ||
| 80 | Pokeviewer::Box.create(trainer_id: t.trainer_id, number: 6, name: t.box_6_name) | ||
| 81 | Pokeviewer::Box.create(trainer_id: t.trainer_id, number: 7, name: t.box_7_name) | ||
| 82 | Pokeviewer::Box.create(trainer_id: t.trainer_id, number: 8, name: t.box_8_name) | ||
| 83 | Pokeviewer::Box.create(trainer_id: t.trainer_id, number: 9, name: t.box_9_name) | ||
| 84 | Pokeviewer::Box.create(trainer_id: t.trainer_id, number: 10, name: t.box_10_name) | ||
| 85 | Pokeviewer::Box.create(trainer_id: t.trainer_id, number: 11, name: t.box_11_name) | ||
| 86 | Pokeviewer::Box.create(trainer_id: t.trainer_id, number: 12, name: t.box_12_name) | ||
| 87 | Pokeviewer::Box.create(trainer_id: t.trainer_id, number: 13, name: t.box_13_name) | ||
| 88 | Pokeviewer::Box.create(trainer_id: t.trainer_id, number: 14, name: t.box_14_name) | ||
| 89 | end | ||
| 90 | |||
| 91 | remove_column :pokeviewer_trainers, :box_1_name | ||
| 92 | remove_column :pokeviewer_trainers, :box_2_name | ||
| 93 | remove_column :pokeviewer_trainers, :box_3_name | ||
| 94 | remove_column :pokeviewer_trainers, :box_4_name | ||
| 95 | remove_column :pokeviewer_trainers, :box_5_name | ||
| 96 | remove_column :pokeviewer_trainers, :box_6_name | ||
| 97 | remove_column :pokeviewer_trainers, :box_7_name | ||
| 98 | remove_column :pokeviewer_trainers, :box_8_name | ||
| 99 | remove_column :pokeviewer_trainers, :box_9_name | ||
| 100 | remove_column :pokeviewer_trainers, :box_10_name | ||
| 101 | remove_column :pokeviewer_trainers, :box_11_name | ||
| 102 | remove_column :pokeviewer_trainers, :box_12_name | ||
| 103 | remove_column :pokeviewer_trainers, :box_13_name | ||
| 104 | remove_column :pokeviewer_trainers, :box_14_name | ||
| 105 | end | ||
| 106 | end | ||
