Alternative ATProto PDS implementation
1use anyhow::Result; 2use diesel::prelude::*; 3use dotenvy::dotenv; 4use rocket_sync_db_pools::database; 5use std::env; 6use std::fmt::{Debug, Formatter}; 7 8#[database("sqlite_db")] 9pub struct DbConn(SqliteConnection); 10 11impl Debug for DbConn { 12 fn fmt(&self, _f: &mut Formatter<'_>) -> std::fmt::Result { 13 todo!() 14 } 15} 16 17#[tracing::instrument(skip_all)] 18pub fn establish_connection_for_sequencer() -> Result<SqliteConnection> { 19 dotenv().ok(); 20 tracing::debug!("Establishing database connection for Sequencer"); 21 let database_url = env::var("BLUEPDS_DB").unwrap_or("sqlite://data/sqlite.db".into()); 22 let db = SqliteConnection::establish(&database_url).map_err(|error| { 23 let context = format!("Error connecting to {database_url:?}"); 24 anyhow::Error::new(error).context(context) 25 })?; 26 Ok(db) 27}