feat: add debug query logging
parent
648921837b
commit
66349afdfc
|
@ -2,10 +2,13 @@ pub mod models;
|
|||
mod repository;
|
||||
mod schema;
|
||||
|
||||
use diesel::connection::InstrumentationEvent;
|
||||
use diesel::r2d2::CustomizeConnection;
|
||||
use diesel::Connection;
|
||||
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::session::Session;
|
||||
pub use models::device_subscription::{NewDeviceSubscription, DeviceSubscription};
|
||||
pub use models::user::{NewUser, User};
|
||||
|
||||
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> {
|
||||
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 {
|
||||
pool.get()?.run_pending_migrations(MIGRATIONS).unwrap();
|
||||
|
|
Loading…
Reference in New Issue