Something went wrong. Try again.
Game sync and live services for independent game developers (targeting itch.io)
Something went wrong. Try again.
783 B · 28 lines
Rust
at main
12345678910111213141516171819202122232425262728use miette::Diagnostic;use sqlx::{Pool, Sqlite};use std::path::Path;use thiserror::Error;
pub type Result<T> = std::result::Result<T, Error>;
#[derive(Error, Debug, Diagnostic)]pub enum Error { #[error("database error: {0}")] Database(#[from] sqlx::Error), #[error("migration error: {0}")] Migration(#[from] sqlx::migrate::MigrateError),}
static MIGRATOR: sqlx::migrate::Migrator = sqlx::migrate!("../api/migrations");
pub async fn migrate(database: &Path) -> Result<Pool<Sqlite>> { let database_url = format!("sqlite:{}?mode=rwc", database.display()); let pool = sqlx::sqlite::SqlitePoolOptions::new() .connect(&database_url) .await?;
MIGRATOR.run(&pool).await?; println!("Migration completed successfully");
Ok(pool)}