diff options
Diffstat (limited to 'yt/src/storage/migrate/mod.rs')
-rw-r--r-- | yt/src/storage/migrate/mod.rs | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/yt/src/storage/migrate/mod.rs b/yt/src/storage/migrate/mod.rs index 50a080a..da6b0be 100644 --- a/yt/src/storage/migrate/mod.rs +++ b/yt/src/storage/migrate/mod.rs @@ -22,7 +22,7 @@ use sqlx::{Sqlite, SqlitePool, Transaction, query}; use crate::app::App; macro_rules! make_upgrade { - ($app:expr, $old_version:expr, $new_version:expr, $update_path:expr) => { + ($app:expr, $old_version:expr, $new_version:expr, $sql_name:expr) => { add_error_context( async { let mut tx = $app @@ -32,7 +32,7 @@ macro_rules! make_upgrade { .context("Failed to start the update transaction")?; debug!("Migrating: {} -> {}", $old_version, $new_version); - sqlx::raw_sql(include_str!($update_path)) + sqlx::raw_sql(include_str!($sql_name)) .execute(&mut *tx) .await .context("Failed to run the update sql script")?; @@ -127,12 +127,14 @@ async fn set_db_version( impl DbVersion { fn as_sql_integer(self) -> i32 { match self { - DbVersion::Empty => unreachable!("A empty version does not have an associated integer"), DbVersion::Zero => 0, DbVersion::One => 1, DbVersion::Two => 2, + + DbVersion::Empty => unreachable!("A empty version does not have an associated integer"), } } + fn from_db(number: i64, namespace: &str) -> Result<Self> { match (number, namespace) { (0, "yt") => Ok(DbVersion::Zero), @@ -156,15 +158,15 @@ impl DbVersion { async fn update(self, app: &App) -> Result<()> { match self { Self::Empty => { - make_upgrade! {app, Self::Empty, Self::Zero, "./sql/00_empty_to_zero.sql"} + make_upgrade! {app, Self::Empty, Self::Zero, "./sql/0_Empty_to_Zero.sql"} } Self::Zero => { - make_upgrade! {app, Self::Zero, Self::One, "./sql/01_zero_to_one.sql"} + make_upgrade! {app, Self::Zero, Self::One, "./sql/1_Zero_to_One.sql"} } Self::One => { - make_upgrade! {app, Self::One, Self::Two, "./sql/02_one_to_two.sql"} + make_upgrade! {app, Self::One, Self::Two, "./sql/2_One_to_Two.sql"} } // This is the current_version |