diff --git a/.sqlx/query-09ab64836127f6edb22a5deaa33ab77d9e8155386a5be60e01b3ad7db8541a27.json b/.sqlx/query-79c73369365ed7a09f4f48a87605d22db4a49ab5fd9943b54865448d0e9a8d67.json similarity index 56% rename from .sqlx/query-09ab64836127f6edb22a5deaa33ab77d9e8155386a5be60e01b3ad7db8541a27.json rename to .sqlx/query-79c73369365ed7a09f4f48a87605d22db4a49ab5fd9943b54865448d0e9a8d67.json index 9288972f5..dd98633e5 100644 --- a/.sqlx/query-09ab64836127f6edb22a5deaa33ab77d9e8155386a5be60e01b3ad7db8541a27.json +++ b/.sqlx/query-79c73369365ed7a09f4f48a87605d22db4a49ab5fd9943b54865448d0e9a8d67.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "\n INSERT INTO loader_field_enum_values (enum_id, value, created, metadata)\n VALUES ($1, $2, COALESCE($3, timezone('utc', now())), $4)\n ON CONFLICT (enum_id, value) DO UPDATE\n SET metadata = COALESCE($4, loader_field_enum_values.metadata),\n created = COALESCE($3, loader_field_enum_values.created)\n RETURNING id\n ", + "query": "\n INSERT INTO loader_field_enum_values (enum_id, value, created, metadata)\n VALUES ($1, $2, COALESCE($3, timezone('utc', now())), $4)\n ON CONFLICT (enum_id, value) DO UPDATE\n SET metadata = jsonb_set(\n COALESCE(loader_field_enum_values.metadata, $4),\n '{type}', \n COALESCE($4->'type', loader_field_enum_values.metadata->'type')\n ),\n created = COALESCE($3, loader_field_enum_values.created)\n RETURNING id\n ", "describe": { "columns": [ { @@ -21,5 +21,5 @@ false ] }, - "hash": "09ab64836127f6edb22a5deaa33ab77d9e8155386a5be60e01b3ad7db8541a27" + "hash": "79c73369365ed7a09f4f48a87605d22db4a49ab5fd9943b54865448d0e9a8d67" } diff --git a/src/database/models/legacy_loader_fields.rs b/src/database/models/legacy_loader_fields.rs index 0804fe36e..80f7e1386 100644 --- a/src/database/models/legacy_loader_fields.rs +++ b/src/database/models/legacy_loader_fields.rs @@ -209,8 +209,12 @@ impl<'a> MinecraftGameVersionBuilder<'a> { INSERT INTO loader_field_enum_values (enum_id, value, created, metadata) VALUES ($1, $2, COALESCE($3, timezone('utc', now())), $4) ON CONFLICT (enum_id, value) DO UPDATE - SET metadata = COALESCE($4, loader_field_enum_values.metadata), - created = COALESCE($3, loader_field_enum_values.created) + SET metadata = jsonb_set( + COALESCE(loader_field_enum_values.metadata, $4), + '{type}', + COALESCE($4->'type', loader_field_enum_values.metadata->'type') + ), + created = COALESCE($3, loader_field_enum_values.created) RETURNING id ", game_versions_enum.id.0, diff --git a/src/models/v2/projects.rs b/src/models/v2/projects.rs index 3c8d0a449..382d513fa 100644 --- a/src/models/v2/projects.rs +++ b/src/models/v2/projects.rs @@ -5,7 +5,6 @@ use std::collections::HashMap; use super::super::ids::OrganizationId; use super::super::teams::TeamId; use super::super::users::UserId; -use crate::database::models::legacy_loader_fields::MinecraftGameVersion; use crate::database::models::{version_item, DatabaseError}; use crate::database::redis::RedisPool; use crate::models::ids::{ProjectId, VersionId}; @@ -80,7 +79,6 @@ impl LegacyProject { pub fn from(data: Project, versions_item: Option) -> Self { let mut client_side = LegacySideType::Unknown; let mut server_side = LegacySideType::Unknown; - let mut game_versions = Vec::new(); // V2 versions only have one project type- v3 versions can rarely have multiple. // We'll prioritize 'modpack' first, and if neither are found, use the first one. @@ -104,7 +102,7 @@ impl LegacyProject { let mut loaders = data.loaders; - game_versions = data + let game_versions = data .fields .get("game_versions") .unwrap_or(&Vec::new())