fix(cmd-p2p): split off create_db from init_db (#7265)

This commit is contained in:
joshieDo
2024-03-21 11:22:57 +00:00
committed by GitHub
parent ffbe8be2aa
commit 1a42b0929f
2 changed files with 22 additions and 7 deletions

View File

@ -92,9 +92,9 @@ use crate::mdbx::DatabaseArguments;
use eyre::WrapErr;
use std::path::Path;
/// Opens up an existing database or creates a new one at the specified path. Creates tables if
/// necessary. Read/Write mode.
pub fn init_db<P: AsRef<Path>>(path: P, args: DatabaseArguments) -> eyre::Result<DatabaseEnv> {
/// Creates a new database at the specified path if it doesn't exist. Does NOT create tables. Check
/// [`init_db`].
pub fn create_db<P: AsRef<Path>>(path: P, args: DatabaseArguments) -> eyre::Result<DatabaseEnv> {
use crate::version::{check_db_version_file, create_db_version_file, DatabaseVersionError};
let rpath = path.as_ref();
@ -109,11 +109,26 @@ pub fn init_db<P: AsRef<Path>>(path: P, args: DatabaseArguments) -> eyre::Result
Err(err) => return Err(err.into()),
}
}
#[cfg(feature = "mdbx")]
{
let db = DatabaseEnv::open(rpath, DatabaseEnvKind::RW, args.clone())?;
Ok(DatabaseEnv::open(rpath, DatabaseEnvKind::RW, args)?)
}
#[cfg(not(feature = "mdbx"))]
{
unimplemented!();
}
}
/// Opens up an existing database or creates a new one at the specified path. Creates tables if
/// necessary. Read/Write mode.
pub fn init_db<P: AsRef<Path>>(path: P, args: DatabaseArguments) -> eyre::Result<DatabaseEnv> {
#[cfg(feature = "mdbx")]
{
let client_version = args.client_version().clone();
let db = create_db(path, args)?;
db.create_tables()?;
db.record_client_version(args.client_version().clone())?;
db.record_client_version(client_version)?;
Ok(db)
}
#[cfg(not(feature = "mdbx"))]