Change SQLite db init code

sql-rework
Tomasz Golinski 2020-03-02 19:23:34 +01:00
rodzic 9a25aa1f33
commit 8dd58d1a90
1 zmienionych plików z 12 dodań i 7 usunięć

Wyświetl plik

@ -19,10 +19,6 @@ OCdb::OCdb(const std::string& db_file) {
Debug(1) << sqlite3_errmsg(db);
throw 1;
}
if (!request("CREATE TABLE IF NOT EXISTS revision (revision INTEGER PRIMARY KEY);") ||
!request("CREATE TABLE IF NOT EXISTS caches (code TEXT PRIMARY KEY, name TEXT, location TEXT, type TEXT, status TEXT, size TEXT, difficulty REAL, terrain REAL, country TEXT, region TEXT, owner TEXT);") ||
!request("CREATE TABLE IF NOT EXISTS logs (uuid TEXT PRIMARY KEY, cache_code TEXT, date TEXT, user TEXT, type TEXT);"))
throw 1;
if (!read_revision()) {
Debug(1) << "Error reading database revision, database may be corrupt or empty.\n";
}
@ -52,9 +48,18 @@ bool OCdb::request(const std::string& req) const {
}
bool OCdb::init(const std::string& dump_path) {
request("DELETE FROM caches;");
request("DELETE FROM logs;");
request("DELETE FROM revision;");
request("BEGIN TRANSACTION;");
if (!request("DROP TABLE IF EXISTS caches;") ||
!request("DROP TABLE IF EXISTS logs;") ||
!request("DROP TABLE IF EXISTS revision;"))
throw 1;
if (!request("CREATE TABLE IF NOT EXISTS revision (revision INTEGER PRIMARY KEY);") ||
!request("CREATE TABLE IF NOT EXISTS caches (code TEXT PRIMARY KEY, name TEXT, location TEXT, type TEXT, status TEXT, size TEXT, difficulty REAL, terrain REAL, country TEXT, region TEXT, owner TEXT);") ||
!request("CREATE TABLE IF NOT EXISTS logs (uuid TEXT PRIMARY KEY, cache_code TEXT, date TEXT, user TEXT, type TEXT);") ||
!request("CREATE INDEX idx_user on logs (user, type);"))
throw 1;
request("COMMIT;");
std::ifstream file(dump_path + "index.json");
json j;