//! Applies the SurrealQL migrations in `database/migrations/`:
//!
//! - `cargo run --bin migrate` (or `-- apply`) applies pending migrations;
//! - `cargo run --bin migrate -- status` lists them;
//! - `cargo run --bin migrate -- fresh [--force]` drops every table first.
//!
//! Usually invoked through `slave migrate`, `slave migrate:status` and
//! `slave migrate:fresh`. Run it from the project root.
use slave_framework::database::{DatabaseConfig, migrations};
#[tokio::main]
async fn main() -> anyhow::Result<()> {
slave_framework::env::load_dotenv()?;
let config = DatabaseConfig::from_env()?;
let db = ::{{ crate_name }}::database(&config).await?;
println!("Database: {}", config.describe());
let args: Vec<String> = std::env::args().skip(1).collect();
migrations::run_cli(&db, &args).await?;
Ok(())
}