summaryrefslogtreecommitdiffstats
path: root/src/djinterop/enginelibrary.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/djinterop/enginelibrary.cpp')
-rw-r--r--src/djinterop/enginelibrary.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/djinterop/enginelibrary.cpp b/src/djinterop/enginelibrary.cpp
index 562b0f6..1c941e4 100644
--- a/src/djinterop/enginelibrary.cpp
+++ b/src/djinterop/enginelibrary.cpp
@@ -16,6 +16,7 @@
*/
#include <cmath>
+#include <fstream>
#include <string>
#include <djinterop/djinterop.hpp>
@@ -41,6 +42,28 @@ database create_database(
return database{std::make_shared<el_database_impl>(storage)};
}
+database create_database_from_scripts(
+ const std::string& db_directory, const std::string& script_directory)
+{
+ std::string stmt;
+
+ std::ifstream m_db_script{script_directory + "/m.db.sql"};
+ sqlite::database m_db{db_directory + "/m.db"};
+ while (std::getline(m_db_script, stmt))
+ {
+ m_db << stmt;
+ }
+
+ std::ifstream p_db_script{script_directory + "/p.db.sql"};
+ sqlite::database p_db{db_directory + "/p.db"};
+ while (std::getline(p_db_script, stmt))
+ {
+ p_db << stmt;
+ }
+
+ return load_database(db_directory);
+}
+
database create_or_load_database(
const std::string& directory, const semantic_version& schema_version,
bool& created)