feat: add debug query logging
parent
648921837b
commit
66349afdfc
|
@ -2,10 +2,13 @@ pub mod models;
|
||||||
mod repository;
|
mod repository;
|
||||||
mod schema;
|
mod schema;
|
||||||
|
|
||||||
|
use diesel::connection::InstrumentationEvent;
|
||||||
|
use diesel::r2d2::CustomizeConnection;
|
||||||
|
use diesel::Connection;
|
||||||
pub use models::device::{Device, DeviceType, NewDevice};
|
pub use models::device::{Device, DeviceType, NewDevice};
|
||||||
|
pub use models::device_subscription::{DeviceSubscription, NewDeviceSubscription};
|
||||||
pub use models::episode_action::{ActionType, EpisodeAction, NewEpisodeAction};
|
pub use models::episode_action::{ActionType, EpisodeAction, NewEpisodeAction};
|
||||||
pub use models::session::Session;
|
pub use models::session::Session;
|
||||||
pub use models::device_subscription::{NewDeviceSubscription, DeviceSubscription};
|
|
||||||
pub use models::user::{NewUser, User};
|
pub use models::user::{NewUser, User};
|
||||||
|
|
||||||
pub use repository::SqliteRepository;
|
pub use repository::SqliteRepository;
|
||||||
|
@ -59,9 +62,27 @@ impl From<diesel::result::Error> for DbError {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
pub struct AddQueryDebugLogs;
|
||||||
|
|
||||||
|
impl CustomizeConnection<SqliteConnection, diesel::r2d2::Error> for AddQueryDebugLogs {
|
||||||
|
fn on_acquire(&self, conn: &mut SqliteConnection) -> Result<(), diesel::r2d2::Error> {
|
||||||
|
conn.set_instrumentation(|event: InstrumentationEvent<'_>| match event {
|
||||||
|
InstrumentationEvent::StartQuery { query, .. } => {
|
||||||
|
tracing::debug!("{}", query);
|
||||||
|
}
|
||||||
|
_ => {}
|
||||||
|
});
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub fn initialize_db(path: impl AsRef<Path>, run_migrations: bool) -> Result<DbPool, DbError> {
|
pub fn initialize_db(path: impl AsRef<Path>, run_migrations: bool) -> Result<DbPool, DbError> {
|
||||||
let manager = ConnectionManager::<SqliteConnection>::new(path.as_ref().to_string_lossy());
|
let manager = ConnectionManager::<SqliteConnection>::new(path.as_ref().to_string_lossy());
|
||||||
let pool = Pool::new(manager)?;
|
let pool = Pool::builder()
|
||||||
|
.connection_customizer(Box::new(AddQueryDebugLogs))
|
||||||
|
.build(manager)?;
|
||||||
|
|
||||||
if run_migrations {
|
if run_migrations {
|
||||||
pool.get()?.run_pending_migrations(MIGRATIONS).unwrap();
|
pool.get()?.run_pending_migrations(MIGRATIONS).unwrap();
|
||||||
|
|
Loading…
Reference in New Issue