X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fdbsetup.cpp;h=b9f30be6802a85264bd0cc822571da50c5ae23b9;hb=fcb124f8d6d3f5678e82049fb8e5e23c8cfaec6d;hp=bc197cc84f777f0fdebdf741c0d19d8c149b4af4;hpb=dec33c63afafabf83c3039e916725cac6faef9b3;p=fms.git diff --git a/src/dbsetup.cpp b/src/dbsetup.cpp index bc197cc..b9f30be 100644 --- a/src/dbsetup.cpp +++ b/src/dbsetup.cpp @@ -15,14 +15,7 @@ void SetupDB() SQLite3DB::DB *db=SQLite3DB::DB::Instance(); db->Open("fms.db3"); - db->SetBusyTimeout(10000); // set timeout to 10 seconds - - tempval=""; - Option::Instance()->Get("VacuumOnStartup",tempval); - if(tempval=="true") - { - db->Execute("VACUUM;"); - } + db->SetBusyTimeout(20000); // set timeout to 20 seconds db->Execute("CREATE TABLE IF NOT EXISTS tblDBVersion(\ Major INTEGER,\ @@ -104,13 +97,31 @@ void SetupDB() major=1; minor=12; } + if(major==1 && minor==12) + { + ConvertDB0112To0113(); + major=1; + minor=13; + } } else { - db->Execute("INSERT INTO tblDBVersion(Major,Minor) VALUES(1,12);"); + db->Execute("INSERT INTO tblDBVersion(Major,Minor) VALUES(1,13);"); } - db->Execute("UPDATE tblDBVersion SET Major=1, Minor=12;"); + db->Execute("UPDATE tblDBVersion SET Major=1, Minor=13;"); + + db->Execute("CREATE TABLE IF NOT EXISTS tblFMSVersion(\ + Major INTEGER,\ + Minor INTEGER,\ + Release INTEGER,\ + Notes TEXT,\ + Changes TEXT,\ + PageKey TEXT,\ + SourceKey TEXT\ + );"); + + db->Execute("CREATE UNIQUE INDEX IF NOT EXISTS idxFMSVersion_Version ON tblFMSVersion(Major,Minor,Release);"); db->Execute("CREATE TABLE IF NOT EXISTS tblOption(\ Option TEXT UNIQUE,\ @@ -176,6 +187,9 @@ void SetupDB() FoundSolution BOOL CHECK(FoundSolution IN('true','false')) DEFAULT 'false'\ );"); + /* + PurgeDate is not used yet + */ db->Execute("CREATE TABLE IF NOT EXISTS tblIdentity(\ IdentityID INTEGER PRIMARY KEY,\ PublicKey TEXT UNIQUE,\ @@ -314,12 +328,17 @@ void SetupDB() Found BOOL CHECK(Found IN('true','false')) DEFAULT 'false'\ );"); + /* + Key is for anonymous messages (future) + */ db->Execute("CREATE TABLE IF NOT EXISTS tblMessageRequests(\ IdentityID INTEGER,\ Day DATE,\ RequestIndex INTEGER,\ FromMessageList BOOL CHECK(FromMessageList IN('true','false')) DEFAULT 'false',\ - Found BOOL CHECK(Found IN('true','false')) DEFAULT 'false'\ + Found BOOL CHECK(Found IN('true','false')) DEFAULT 'false',\ + Tries INTEGER DEFAULT 0,\ + Key TEXT\ );"); db->Execute("CREATE UNIQUE INDEX IF NOT EXISTS idxMessageRequest ON tblMessageRequests(IdentityID,Day,RequestIndex);"); @@ -382,6 +401,12 @@ void SetupDB() LocalIdentityID INTEGER\ );"); + // Temporary table for form passwords + db->Execute("CREATE TEMPORARY TABLE IF NOT EXISTS tmpFormPassword(\ + Date DATETIME,\ + Password TEXT\ + );"); + // low / high / message count for each board db->Execute("CREATE VIEW IF NOT EXISTS vwBoardStats AS \ SELECT tblBoard.BoardID AS 'BoardID', IFNULL(MIN(MessageID),0) AS 'LowMessageID', IFNULL(MAX(MessageID),0) AS 'HighMessageID', COUNT(MessageID) AS 'MessageCount' \