use sqlx::{migrate::MigrateDatabase, Sqlite, SqlitePool}; const DB_URL: &str = "sqlite://sqlite.db"; async fn setup_db() -> SqlitePool { if !Sqlite::database_exists(DB_URL).await.unwrap_or(false) { println!("Creating database {}", DB_URL); Sqlite::create_database(DB_URL).await.unwrap() } else { println!("Database already exists"); } let pool = SqlitePool::connect(DB_URL).await.unwrap(); sqlx::query("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY NOT NULL, name VARCHAR(250) NOT NULL);") .execute(&pool) .await .unwrap(); pool } #[tokio::main] async fn main() { println!("Setting up database..."); setup_db().await; println!("Database setup complete"); }