From e4051479d43746395e9e665f59b81ee7387733e7 Mon Sep 17 00:00:00 2001 From: Akulij Date: Mon, 7 Apr 2025 23:13:52 +0900 Subject: [PATCH] stringify reservation table status field reason: no easy to setup enums support in diesel --- .../down.sql | 2 ++ .../up.sql | 2 ++ src/db/schema.rs | 11 +---------- 3 files changed, 5 insertions(+), 10 deletions(-) create mode 100644 migrations/2025-04-07-135609_stringify_reservation_status/down.sql create mode 100644 migrations/2025-04-07-135609_stringify_reservation_status/up.sql diff --git a/migrations/2025-04-07-135609_stringify_reservation_status/down.sql b/migrations/2025-04-07-135609_stringify_reservation_status/down.sql new file mode 100644 index 0000000..305d59a --- /dev/null +++ b/migrations/2025-04-07-135609_stringify_reservation_status/down.sql @@ -0,0 +1,2 @@ +CREATE TYPE reservation_status AS ENUM ('booked', 'paid'); +ALTER TABLE reservations ALTER COLUMN status TYPE reservation_status USING status::reservation_status; diff --git a/migrations/2025-04-07-135609_stringify_reservation_status/up.sql b/migrations/2025-04-07-135609_stringify_reservation_status/up.sql new file mode 100644 index 0000000..ce0762b --- /dev/null +++ b/migrations/2025-04-07-135609_stringify_reservation_status/up.sql @@ -0,0 +1,2 @@ +ALTER TABLE reservations ALTER COLUMN status TYPE VARCHAR; +DROP TYPE reservation_status; diff --git a/src/db/schema.rs b/src/db/schema.rs index 9324907..62c1f97 100644 --- a/src/db/schema.rs +++ b/src/db/schema.rs @@ -1,11 +1,5 @@ // @generated automatically by Diesel CLI. -pub mod sql_types { - #[derive(diesel::query_builder::QueryId, Clone, diesel::sql_types::SqlType)] - #[diesel(postgres_type(name = "reservation_status"))] - pub struct ReservationStatus; -} - diesel::table! { events (id) { id -> Int4, @@ -33,9 +27,6 @@ diesel::table! { } diesel::table! { - use diesel::sql_types::*; - use super::sql_types::ReservationStatus; - reservations (id) { id -> Int4, user_id -> Nullable, @@ -43,7 +34,7 @@ diesel::table! { entered_name -> Nullable, booked_time -> Timestamp, event_id -> Nullable, - status -> ReservationStatus, + status -> Varchar, } }