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}