postgres via sqlx - workable?

This commit is contained in:
2026-04-20 01:17:30 +02:00
parent acfd8a6d72
commit 879c5ee3d3
42 changed files with 2536 additions and 1184 deletions

View File

@@ -1,6 +1,8 @@
use std::error::Error;
use axum::Router;
use dotenvy::var;
use sqlx::PgPool;
use tokio::net::TcpListener;
mod api;
@@ -20,6 +22,11 @@ const DEFAULT_PORT: u16 = 0x9999; // 39321
/// The string to be returned alongside HTTP 500
const ISE_MSG: &str = "Internal server error";
#[derive(Debug, Clone)]
pub struct MnemoState {
pool: PgPool,
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
if let Err(e) = dotenvy::dotenv()
@@ -29,13 +36,16 @@ async fn main() -> Result<(), Box<dyn Error>> {
}
env_logger::builder()
.filter_level(log::LevelFilter::Info)
.filter_module("sqlx", log::LevelFilter::Warn)
.parse_default_env()
.format(config::envlogger_write_format)
.init();
database::migrations()?;
let pool = PgPool::connect(var("DATABASE_URL")?.as_str()).await?;
sqlx::migrate!("src/database/migrations").run(&pool).await?;
log::info!("Migrations applied successfully.");
users::auth::init_password_dummies();
users::setup::initialise_reserved_users_if_needed()?;
users::setup::initialise_reserved_users_if_needed(&pool).await?;
let port = match std::env::var("PORT") {
Ok(p) => p.parse::<u16>()?,
@@ -46,7 +56,8 @@ async fn main() -> Result<(), Box<dyn Error>> {
};
let r = Router::new()
.merge(api::api_router())
.merge(web::web_router());
.merge(web::web_router())
.with_state(MnemoState { pool });
let l = TcpListener::bind(format!("0.0.0.0:{port}")).await?;
log::info!("Listener bound to {}", l.local_addr()?);