Change mastery columns to use jsonb

5 columns better than 10
This commit is contained in:
Justin Edmund 2023-01-07 05:33:16 -08:00
parent 6cf9c8d2ae
commit 7404bcbac9
2 changed files with 29 additions and 12 deletions

View file

@ -0,0 +1,22 @@
class ChangeMasteryColumnsToJsonb < ActiveRecord::Migration[7.0]
def change
# Remove old columns
remove_column :grid_characters, :ring_modifier1, :integer
remove_column :grid_characters, :ring_modifier2, :integer
remove_column :grid_characters, :ring_modifier3, :integer
remove_column :grid_characters, :ring_modifier4, :integer
remove_column :grid_characters, :ring_strength1, :integer
remove_column :grid_characters, :ring_strength2, :integer
remove_column :grid_characters, :ring_strength3, :integer
remove_column :grid_characters, :ring_strength4, :integer
remove_column :grid_characters, :earring_modifier, :integer
remove_column :grid_characters, :earring_strength, :integer
# Add new columns
add_column :grid_characters, :ring1, :jsonb, default: { modifier: nil, strength: nil }
add_column :grid_characters, :ring2, :jsonb, default: { modifier: nil, strength: nil }
add_column :grid_characters, :ring3, :jsonb, default: { modifier: nil, strength: nil }
add_column :grid_characters, :ring4, :jsonb, default: { modifier: nil, strength: nil }
add_column :grid_characters, :earring, :jsonb, default: { modifier: nil, strength: nil }
end
end

View file

@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema[7.0].define(version: 2023_01_03_180458) do
ActiveRecord::Schema[7.0].define(version: 2023_01_07_121520) do
# These are extensions that must be enabled in order to support this database
enable_extension "btree_gin"
enable_extension "pg_trgm"
@ -67,19 +67,14 @@ ActiveRecord::Schema[7.0].define(version: 2023_01_03_180458) do
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.boolean "perpetuity", default: false, null: false
t.integer "awakening_type", default: 0, null: false
t.integer "awakening_type", default: 1, null: false
t.integer "awakening_level", default: 1, null: false
t.integer "transcendence_step", default: 0, null: false
t.integer "ring_modifier1"
t.float "ring_strength1"
t.integer "ring_modifier2"
t.float "ring_strength2"
t.integer "ring_modifier3"
t.float "ring_strength3"
t.integer "ring_modifier4"
t.float "ring_strength4"
t.integer "earring_modifier"
t.float "earring_strength"
t.jsonb "ring1", default: {"modifier"=>nil, "strength"=>nil}
t.jsonb "ring2", default: {"modifier"=>nil, "strength"=>nil}
t.jsonb "ring3", default: {"modifier"=>nil, "strength"=>nil}
t.jsonb "ring4", default: {"modifier"=>nil, "strength"=>nil}
t.jsonb "earring", default: {"modifier"=>nil, "strength"=>nil}
t.index ["character_id"], name: "index_grid_characters_on_character_id"
t.index ["party_id"], name: "index_grid_characters_on_party_id"
end