diff --git a/apps/labrinth/migrations/20250117013050_missing-primary-keys.sql b/apps/labrinth/migrations/20250117013050_missing-primary-keys.sql index 1a8588e2..2054cf49 100644 --- a/apps/labrinth/migrations/20250117013050_missing-primary-keys.sql +++ b/apps/labrinth/migrations/20250117013050_missing-primary-keys.sql @@ -20,7 +20,7 @@ WHERE ctid IN ( FROM CTE WHERE row_num > 1 ); - +x ALTER TABLE version_fields ADD PRIMARY KEY (version_id, field_id, enum_value); diff --git a/apps/labrinth/src/database/models/loader_fields.rs b/apps/labrinth/src/database/models/loader_fields.rs index 70c74150..292c6e12 100644 --- a/apps/labrinth/src/database/models/loader_fields.rs +++ b/apps/labrinth/src/database/models/loader_fields.rs @@ -757,7 +757,12 @@ impl VersionField { l.field_id.0, l.version_id.0, l.int_value, - l.enum_value.as_ref().map(|e| e.0), + if let Some(enum_value) = l.enum_value.as_ref().map(|e| e.0) + { + enum_value + } else { + -1 + }, l.string_value.clone(), ) }) @@ -772,7 +777,7 @@ impl VersionField { &version_ids[..], &int_values[..] as &[Option], &string_values[..] as &[Option], - &enum_values[..] as &[Option] + &enum_values[..] as &[i32] ) .execute(&mut **transaction) .await?;