about summary refs log tree commit diff stats
path: root/db/migrate
diff options
context:
space:
mode:
authorKelly Rauchenberger <fefferburbia@gmail.com>2017-10-03 16:18:46 -0400
committerKelly Rauchenberger <fefferburbia@gmail.com>2017-10-03 16:18:46 -0400
commit4bc96847f621c4cb3940fe99b3b4b67b20596189 (patch)
treec5b0e651e1ed0663a5eabc29966ca9778cdcd5eb /db/migrate
parentb618e52428bb659cb1fe3bdbe3d3763d48b4556c (diff)
downloadpokeviewer-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/migrate')
-rw-r--r--db/migrate/20171003191205_remove_boxes.rb106
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 @@
1class 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
106end