use crate::BlockDb;
#[cfg(feature = "unstable")]
use {
super::migrations,
crate::FsBlockDb,
schemerz::{Migrator, MigratorError},
schemerz_rusqlite::RusqliteAdapter,
};
pub fn init_cache_database(db_cache: &BlockDb) -> Result<(), rusqlite::Error> {
db_cache.0.execute(
"CREATE TABLE IF NOT EXISTS compactblocks (
height INTEGER PRIMARY KEY,
data BLOB NOT NULL
)",
[],
)?;
Ok(())
}
#[cfg(feature = "unstable")]
pub fn init_blockmeta_db(
db: &mut FsBlockDb,
) -> Result<(), MigratorError<uuid::Uuid, rusqlite::Error>> {
let adapter = RusqliteAdapter::new(&mut db.conn, Some("schemer_migrations".to_string()));
adapter.init().expect("Migrations table setup succeeds.");
let mut migrator = Migrator::new(adapter);
migrator
.register_multiple(migrations::blockmeta::all_migrations().into_iter())
.expect("Migration registration should have been successful.");
migrator.up(None)?;
Ok(())
}