diff --git a/src/Database.cpp b/src/Database.cpp index 994c60a..81b39d0 100644 --- a/src/Database.cpp +++ b/src/Database.cpp @@ -18,13 +18,18 @@ #endif std::mutex dbCrit; +sqlite3* db; #pragma region LoginServer void Database::open() { - // this parameter means it will try to preserve data during migration - bool preserve = true; - db.sync_schema(preserve); + + int rc = sqlite3_open(settings::DBPATH.c_str(), &db); + if (rc != SQLITE_OK) { + std::cout << "[FATAL] Cannot open database: " << sqlite3_errmsg(db) << std::endl; + terminate(0); + } + std::cout << "[INFO] Database in operation "; int accounts = getAccountsCount(); int players = getPlayersCount(); diff --git a/src/settings.cpp b/src/settings.cpp index 8ac644a..1a2b138 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -28,6 +28,7 @@ std::string settings::DROPSJSON = "tdata/drops.json"; std::string settings::EGGSJSON = "tdata/eggs.json"; std::string settings::GRUNTWORKJSON = "tdata/gruntwork.json"; std::string settings::MOTDSTRING = "Welcome to OpenFusion!"; +std::string settings::DBPATH = "database.db"; int settings::ACCLEVEL = 1; // monitor settings @@ -72,6 +73,7 @@ void settings::init() { PATHJSON = reader.Get("shard", "pathdata", PATHJSON); GRUNTWORKJSON = reader.Get("shard", "gruntwork", GRUNTWORKJSON); MOTDSTRING = reader.Get("shard", "motd", MOTDSTRING); + DBPATH = reader.Get("shard", "dbpath", DBPATH); ACCLEVEL = reader.GetInteger("shard", "accountlevel", ACCLEVEL); EVENTMODE = reader.GetInteger("shard", "eventmode", EVENTMODE); EVENTCRATECHANCE = reader.GetInteger("shard", "eventcratechance", EVENTCRATECHANCE); diff --git a/src/settings.hpp b/src/settings.hpp index 0d92fef..948e6ca 100644 --- a/src/settings.hpp +++ b/src/settings.hpp @@ -23,6 +23,7 @@ namespace settings { extern std::string DROPSJSON; extern std::string EGGSJSON; extern std::string GRUNTWORKJSON; + extern std::string DBPATH; extern int EVENTMODE; extern int EVENTCRATECHANCE; extern bool MONITORENABLED;