From 69d44c27cc09f6eccde9683156c564f4d2fd599b Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Wed, 18 Dec 2024 12:22:26 -0600 Subject: [PATCH] refactor db directory --- repertory/librepertory/src/db/impl/rdb_file_db.cpp | 9 ++++++++- .../librepertory/src/db/impl/rdb_file_mgr_db.cpp | 9 ++++++++- repertory/librepertory/src/db/impl/rdb_meta_db.cpp | 9 ++++++++- .../librepertory/src/db/impl/sqlite_file_db.cpp | 12 +++++++++--- .../librepertory/src/db/impl/sqlite_file_mgr_db.cpp | 10 ++++++++-- .../librepertory/src/db/impl/sqlite_meta_db.cpp | 12 +++++++++--- 6 files changed, 50 insertions(+), 11 deletions(-) diff --git a/repertory/librepertory/src/db/impl/rdb_file_db.cpp b/repertory/librepertory/src/db/impl/rdb_file_db.cpp index 0962716d..8016c953 100644 --- a/repertory/librepertory/src/db/impl/rdb_file_db.cpp +++ b/repertory/librepertory/src/db/impl/rdb_file_db.cpp @@ -37,7 +37,14 @@ create_rocksdb(const repertory::app_config &cfg, const std::string &name, -> std::unique_ptr { REPERTORY_USES_FUNCTION_NAME(); - auto path = repertory::utils::path::combine(cfg.get_data_directory(), {name}); + auto db_dir = + repertory::utils::path::combine(cfg.get_data_directory(), {"db"}); + if (not repertory::utils::file::directory{db_dir}.create_directory()) { + throw startup_exception( + fmt::format("failed to create db directory|", db_dir)); + } + + auto path = repertory::utils::path::combine(db_dir, {name}); if (clear && not repertory::utils::file::directory{path}.remove_recursively()) { repertory::utils::error::raise_error( diff --git a/repertory/librepertory/src/db/impl/rdb_file_mgr_db.cpp b/repertory/librepertory/src/db/impl/rdb_file_mgr_db.cpp index 25fb2b52..71d4de84 100644 --- a/repertory/librepertory/src/db/impl/rdb_file_mgr_db.cpp +++ b/repertory/librepertory/src/db/impl/rdb_file_mgr_db.cpp @@ -37,7 +37,14 @@ create_rocksdb(const repertory::app_config &cfg, const std::string &name, -> std::unique_ptr { REPERTORY_USES_FUNCTION_NAME(); - auto path = repertory::utils::path::combine(cfg.get_data_directory(), {name}); + auto db_dir = + repertory::utils::path::combine(cfg.get_data_directory(), {"db"}); + if (not repertory::utils::file::directory{db_dir}.create_directory()) { + throw startup_exception( + fmt::format("failed to create db directory|", db_dir)); + } + + auto path = repertory::utils::path::combine(db_dir, {name}); if (clear && not repertory::utils::file::directory{path}.remove_recursively()) { repertory::utils::error::raise_error( diff --git a/repertory/librepertory/src/db/impl/rdb_meta_db.cpp b/repertory/librepertory/src/db/impl/rdb_meta_db.cpp index 2361b657..6213d78d 100644 --- a/repertory/librepertory/src/db/impl/rdb_meta_db.cpp +++ b/repertory/librepertory/src/db/impl/rdb_meta_db.cpp @@ -36,7 +36,14 @@ create_rocksdb(const repertory::app_config &cfg, const std::string &name, -> std::unique_ptr { REPERTORY_USES_FUNCTION_NAME(); - auto path = repertory::utils::path::combine(cfg.get_data_directory(), {name}); + auto db_dir = + repertory::utils::path::combine(cfg.get_data_directory(), {"db"}); + if (not repertory::utils::file::directory{db_dir}.create_directory()) { + throw startup_exception( + fmt::format("failed to create db directory|", db_dir)); + } + + auto path = repertory::utils::path::combine(db_dir, {name}); if (clear && not repertory::utils::file::directory{path}.remove_recursively()) { repertory::utils::error::raise_error( diff --git a/repertory/librepertory/src/db/impl/sqlite_file_db.cpp b/repertory/librepertory/src/db/impl/sqlite_file_db.cpp index b72a9475..85210528 100644 --- a/repertory/librepertory/src/db/impl/sqlite_file_db.cpp +++ b/repertory/librepertory/src/db/impl/sqlite_file_db.cpp @@ -29,6 +29,7 @@ #include "utils/db/sqlite/db_select.hpp" #include "utils/db/sqlite/db_update.hpp" #include "utils/error_utils.hpp" +#include "utils/file.hpp" #include "utils/path.hpp" #include "utils/string.hpp" @@ -51,9 +52,14 @@ const std::map sql_create_tables = { namespace repertory { sqlite_file_db::sqlite_file_db(const app_config &cfg) { - db_ = utils::db::sqlite::create_db( - utils::path::combine(cfg.get_data_directory(), {"provider_file.db"}), - sql_create_tables); + auto db_dir = utils::path::combine(cfg.get_data_directory(), {"db"}); + if (not utils::file::directory{db_dir}.create_directory()) { + throw startup_exception( + fmt::format("failed to create db directory|", db_dir)); + } + + db_ = utils::db::sqlite::create_db(utils::path::combine(db_dir, {"file.db"}), + sql_create_tables); } sqlite_file_db::~sqlite_file_db() { db_.reset(); } diff --git a/repertory/librepertory/src/db/impl/sqlite_file_mgr_db.cpp b/repertory/librepertory/src/db/impl/sqlite_file_mgr_db.cpp index 8d25321c..979763c6 100644 --- a/repertory/librepertory/src/db/impl/sqlite_file_mgr_db.cpp +++ b/repertory/librepertory/src/db/impl/sqlite_file_mgr_db.cpp @@ -29,6 +29,7 @@ #include "utils/db/sqlite/db_select.hpp" #include "utils/db/sqlite/db_update.hpp" #include "utils/error_utils.hpp" +#include "utils/file.hpp" #include "utils/path.hpp" #include "utils/string.hpp" @@ -75,9 +76,14 @@ const std::map sql_create_tables{ namespace repertory { sqlite_file_mgr_db::sqlite_file_mgr_db(const app_config &cfg) { + auto db_dir = utils::path::combine(cfg.get_data_directory(), {"db"}); + if (not utils::file::directory{db_dir}.create_directory()) { + throw startup_exception( + fmt::format("failed to create db directory|", db_dir)); + } + db_ = utils::db::sqlite::create_db( - utils::path::combine(cfg.get_data_directory(), {"mgr.db"}), - sql_create_tables); + utils::path::combine(db_dir, {"file_mgr.db"}), sql_create_tables); } sqlite_file_mgr_db::~sqlite_file_mgr_db() { db_.reset(); } diff --git a/repertory/librepertory/src/db/impl/sqlite_meta_db.cpp b/repertory/librepertory/src/db/impl/sqlite_meta_db.cpp index 2c7ec27e..2128fe60 100644 --- a/repertory/librepertory/src/db/impl/sqlite_meta_db.cpp +++ b/repertory/librepertory/src/db/impl/sqlite_meta_db.cpp @@ -27,6 +27,7 @@ #include "utils/db/sqlite/db_insert.hpp" #include "utils/db/sqlite/db_select.hpp" #include "utils/error_utils.hpp" +#include "utils/file.hpp" #include "utils/path.hpp" #include "utils/string.hpp" @@ -48,9 +49,14 @@ sqlite_meta_db::sqlite_meta_db(const app_config &cfg) { }, }; - db_ = utils::db::sqlite::create_db( - utils::path::combine(cfg.get_data_directory(), {"provider_meta.db"}), - sql_create_tables); + auto db_dir = utils::path::combine(cfg.get_data_directory(), {"db"}); + if (not utils::file::directory{db_dir}.create_directory()) { + throw startup_exception( + fmt::format("failed to create db directory|", db_dir)); + } + + db_ = utils::db::sqlite::create_db(utils::path::combine(db_dir, {"meta.db"}), + sql_create_tables); } sqlite_meta_db::~sqlite_meta_db() { db_.reset(); }