From 239d7dd94ac8ba8caeaf44e204422a66a36ff7b0 Mon Sep 17 00:00:00 2001 From: Greg Shuflin Date: Sun, 2 Feb 2025 19:24:45 -0800 Subject: [PATCH] Run migrations --- Cargo.lock | 1 + Cargo.toml | 1 + src/main.rs | 12 ++++++++++++ 3 files changed, 14 insertions(+) diff --git a/Cargo.lock b/Cargo.lock index 81bc665..5259c59 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2673,6 +2673,7 @@ dependencies = [ "rocket_dyn_templates", "rss", "sqlx", + "tokio", "url", "uuid", ] diff --git a/Cargo.toml b/Cargo.toml index ac54e7b..b05e70f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,3 +18,4 @@ bcrypt = "0.15" url = { version = "2.5", features = ["serde"] } feed-rs = "2.3.1" reqwest = { version = "0.12.12", features = ["json"] } +tokio = "1.43.0" diff --git a/src/main.rs b/src/main.rs index 9aa4640..61b3dbe 100644 --- a/src/main.rs +++ b/src/main.rs @@ -46,6 +46,18 @@ fn login() -> Template { fn rocket() -> _ { let args = Args::parse(); + let db_url = format!("sqlite:{}", args.database); + + // Run migrations before starting the server + let rt = tokio::runtime::Runtime::new().unwrap(); + rt.block_on(async { + let pool = sqlx::SqlitePool::connect(&db_url).await.unwrap(); + sqlx::migrate!("./migrations") + .run(&pool) + .await + .expect("Failed to run database migrations"); + }); + let figment = rocket::Config::figment().merge(( "databases.rss_data.url", format!("sqlite:{}", args.database),