mirror of
https://github.com/vcmi/vcmi.git
synced 2025-11-23 22:37:55 +02:00
Fixed database version upgrade
This commit is contained in:
@@ -33,8 +33,7 @@ void LobbyDatabase::createTables()
|
||||
description TEXT NOT NULL DEFAULT '',
|
||||
status INTEGER NOT NULL DEFAULT 0,
|
||||
playerLimit INTEGER NOT NULL,
|
||||
creationTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||
mods TEXT NOT NULL DEFAULT '[]'
|
||||
creationTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL
|
||||
);
|
||||
)";
|
||||
|
||||
@@ -85,26 +84,32 @@ void LobbyDatabase::createTables()
|
||||
void LobbyDatabase::upgradeDatabase()
|
||||
{
|
||||
auto getDatabaseVersionStatement = database->prepare(R"(
|
||||
PRAGMA schema.user_version
|
||||
PRAGMA user_version
|
||||
)");
|
||||
|
||||
auto setDatabaseVersionStatement = database->prepare(R"(
|
||||
PRAGMA schema.user_version = ?
|
||||
auto upgradeDatabaseVersionStatement = database->prepare(R"(
|
||||
PRAGMA user_version = 10501
|
||||
)");
|
||||
|
||||
int databaseVersion;
|
||||
getDatabaseVersionStatement->execute();
|
||||
getDatabaseVersionStatement->getColumns(databaseVersion);
|
||||
getDatabaseVersionStatement->reset();
|
||||
|
||||
if (databaseVersion < 10501)
|
||||
{
|
||||
database->prepare(R"(
|
||||
ALTER TABLE gameRooms
|
||||
ADD COLUMN version TEXT NOT NULL DEFAULT ''
|
||||
ADD COLUMN mods TEXT NOT NULL DEFAULT '{}'
|
||||
)")->execute();
|
||||
|
||||
setDatabaseVersionStatement->executeOnce(10501);
|
||||
database->prepare(R"(
|
||||
ALTER TABLE gameRooms
|
||||
ADD COLUMN version TEXT NOT NULL DEFAULT ''
|
||||
)")->execute();
|
||||
|
||||
upgradeDatabaseVersionStatement->execute();
|
||||
upgradeDatabaseVersionStatement->reset();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -260,7 +265,7 @@ void LobbyDatabase::prepareStatements()
|
||||
)");
|
||||
|
||||
getActiveGameRoomsStatement = database->prepare(R"(
|
||||
SELECT roomID, hostAccountID, displayName, description, status, playerLimit, mods, strftime('%s',CURRENT_TIMESTAMP)- strftime('%s',gr.creationTime) AS secondsElapsed
|
||||
SELECT roomID, hostAccountID, displayName, description, status, playerLimit, version, mods, strftime('%s',CURRENT_TIMESTAMP)- strftime('%s',gr.creationTime) AS secondsElapsed
|
||||
FROM gameRooms gr
|
||||
LEFT JOIN accounts a ON gr.hostAccountID = a.accountID
|
||||
WHERE status IN (1, 2, 3)
|
||||
|
||||
Reference in New Issue
Block a user