Compare commits

..

2 commits

Author SHA1 Message Date
1d1dc15320 Remove some more incorrect limits on ID fields in the database
I'm running into this with the automated tests and the fixtures I think
sometimes using large auto-generated IDs?

But the point is, our tables generally use Rails's default `:integer`
size for its IDs, and then columns that reference them are *smaller*,
which is… not correct stuff, y'know?

So I figure, let's just expand the columns. We don't have enough data
that being real picky about the integer sizes matters, so let's keep it
simple and more obviously correct.
2024-11-15 20:39:38 -08:00
b6c21dfe40 Oops, fix sort order for alt styles
Oh huh, when doing Rainbow Pool stuff, I put the ordering in the wrong
place! It's a sensible ordering for the Rainbow Pool page, but not so
much for the JSON view!
2024-11-15 20:28:38 -08:00
3 changed files with 37 additions and 11 deletions

View file

@ -15,9 +15,7 @@ class AltStylesController < ApplicationController
@color = find_color
@species = find_species
@alt_styles = @all_alt_styles.includes(:swf_assets).
by_creation_date.order(:color_id, :species_id, :series_name).
paginate(page: params[:page], per_page: 30)
@alt_styles = @all_alt_styles.includes(:swf_assets)
@alt_styles.where!(series_name: @series_name) if @series_name.present?
@alt_styles.merge!(@color.alt_styles) if @color
@alt_styles.merge!(@species.alt_styles) if @species
@ -27,9 +25,16 @@ class AltStylesController < ApplicationController
SwfAsset.preload_manifests @alt_styles.map(&:swf_assets).flatten
respond_to do |format|
format.html { render }
format.html {
@alt_styles = @alt_styles.
by_creation_date.order(:color_id, :species_id, :series_name).
paginate(page: params[:page], per_page: 30)
render
}
format.json {
render json: @alt_styles.includes(swf_assets: [:zone]).as_json(
@alt_styles = @alt_styles.includes(swf_assets: [:zone]).
sort_by(&:full_name)
render json: @alt_styles.as_json(
only: [:id, :species_id, :color_id, :body_id, :series_name,
:adjective_name, :thumbnail_url],
include: {

View file

@ -0,0 +1,21 @@
class IncreaseIdLimits < ActiveRecord::Migration[7.2]
def change
reversible do |direction|
direction.up do
change_column :parents_swf_assets, :parent_id, :integer, null: false
change_column :parents_swf_assets, :swf_asset_id, :integer, null: false
change_column :pet_states, :pet_type_id, :integer, null: false
change_column :pets, :pet_type_id, :integer, null: false
change_column :swf_assets, :zone_id, :integer, null: false
end
direction.down do
change_column :parents_swf_assets, :parent_id, :integer, limit: 3, null: false
change_column :parents_swf_assets, :swf_asset_id, :integer, limit: 3, null: false
change_column :pet_states, :pet_type_id, :integer, limit: 3, null: false
change_column :pets, :pet_type_id, :integer, limit: 3, null: false
change_column :swf_assets, :zone_id, :integer, limit: 1, null: false
end
end
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.2].define(version: 2024_11_16_031655) do
ActiveRecord::Schema[7.2].define(version: 2024_11_16_041926) do
create_table "alt_styles", charset: "utf8mb4", collation: "utf8mb4_unicode_520_ci", force: :cascade do |t|
t.integer "species_id", null: false
t.integer "color_id", null: false
@ -196,8 +196,8 @@ ActiveRecord::Schema[7.2].define(version: 2024_11_16_031655) do
end
create_table "parents_swf_assets", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_520_ci", force: :cascade do |t|
t.integer "parent_id", limit: 3, null: false
t.integer "swf_asset_id", limit: 3, null: false
t.integer "parent_id", null: false
t.integer "swf_asset_id", null: false
t.string "parent_type", limit: 8, null: false
t.index ["parent_id", "parent_type"], name: "index_parents_swf_assets_on_parent_id_and_parent_type"
t.index ["parent_id", "swf_asset_id"], name: "unique_parents_swf_assets", unique: true
@ -211,7 +211,7 @@ ActiveRecord::Schema[7.2].define(version: 2024_11_16_031655) do
end
create_table "pet_states", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_520_ci", force: :cascade do |t|
t.integer "pet_type_id", limit: 3, null: false
t.integer "pet_type_id", null: false
t.text "swf_asset_ids", size: :medium, null: false
t.boolean "female"
t.integer "mood_id"
@ -240,7 +240,7 @@ ActiveRecord::Schema[7.2].define(version: 2024_11_16_031655) do
create_table "pets", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_520_ci", force: :cascade do |t|
t.string "name", limit: 20, null: false
t.integer "pet_type_id", limit: 3, null: false
t.integer "pet_type_id", null: false
t.index ["name"], name: "pets_name", unique: true
t.index ["pet_type_id"], name: "pets_pet_type_id"
end
@ -253,7 +253,7 @@ ActiveRecord::Schema[7.2].define(version: 2024_11_16_031655) do
t.string "type", limit: 7, null: false
t.integer "remote_id", limit: 3, null: false
t.text "url", size: :long, null: false
t.integer "zone_id", limit: 1, null: false
t.integer "zone_id", null: false
t.text "zones_restrict", size: :medium, null: false
t.datetime "created_at", precision: nil, null: false
t.integer "body_id", limit: 2, null: false