embed_migrations!("./src/migrations/diesel/sqlite/migrations");
use diesel::sqlite::SqliteConnection;
use diesel::Connection;
use diesel_migrations::MigrationConnection;
use crate::error::InternalError;
pub fn run_migrations(conn: &SqliteConnection) -> Result<(), InternalError> {
embedded_migrations::run(conn).map_err(|err| InternalError::from_source(Box::new(err)))?;
debug!("Successfully applied Splinter SQLite migrations");
Ok(())
}
pub fn any_pending_migrations(conn: &SqliteConnection) -> Result<bool, InternalError> {
let current_version = conn.latest_run_migration_version().unwrap_or(None);
let latest_version =
conn.test_transaction::<Result<Option<String>, InternalError>, (), _>(|| {
Ok(match embedded_migrations::run(conn) {
Ok(_) => conn
.latest_run_migration_version()
.map_err(|err| InternalError::from_source(Box::new(err))),
Err(err) => Err(InternalError::from_source(Box::new(err))),
})
})?;
Ok(current_version == latest_version)
}