Fix migration on Linux

This commit is contained in:
dongresource 2020-12-20 23:08:12 +01:00
parent ea12ec9607
commit c3d9883ddb
2 changed files with 5 additions and 6 deletions

View File

@ -1,8 +1,8 @@
BEGIN TRANSACTION; BEGIN TRANSACTION;
-- New Columns -- New Columns
ALTER TABLE Accounts ADD BanReason TEXT DEFAULT '' NOT NULL; ALTER TABLE Accounts ADD BanReason TEXT DEFAULT '' NOT NULL;
ALTER TABLE RaceResults ADD RingCount INTEGER NOT NULL; ALTER TABLE RaceResults ADD RingCount INTEGER DEFAULT 0 NOT NULL;
ALTER TABLE RaceResults ADD Time INTEGER NOT NULL; ALTER TABLE RaceResults ADD Time INTEGER DEFAULT 0 NOT NULL;
-- Fix timestamps in Meta -- Fix timestamps in Meta
INSERT INTO Meta (Key, Value) VALUES ('Created', 0); INSERT INTO Meta (Key, Value) VALUES ('Created', 0);
INSERT INTO Meta (Key, Value) VALUES ('LastMigration', strftime('%s', 'now')); INSERT INTO Meta (Key, Value) VALUES ('LastMigration', strftime('%s', 'now'));
@ -11,7 +11,7 @@ UPDATE Meta SET Value = (SELECT Created FROM Meta WHERE Key = 'ProtocolVersion')
CREATE TABLE Temp(Key TEXT NOT NULL UNIQUE, Value INTEGER NOT NULL); CREATE TABLE Temp(Key TEXT NOT NULL UNIQUE, Value INTEGER NOT NULL);
INSERT INTO Temp SELECT Key, Value FROM Meta; INSERT INTO Temp SELECT Key, Value FROM Meta;
DROP TABLE Meta; DROP TABLE Meta;
ALTER TABLE Temp Rename TO Meta; ALTER TABLE Temp RENAME TO Meta;
-- Update DB Version -- Update DB Version
UPDATE Meta SET Value = 2 WHERE Key = 'DatabaseVersion'; UPDATE Meta SET Value = 2 WHERE Key = 'DatabaseVersion';
UPDATE Meta SET Value = strftime('%s', 'now') WHERE Key = 'LastMigration'; UPDATE Meta SET Value = strftime('%s', 'now') WHERE Key = 'LastMigration';

View File

@ -162,7 +162,7 @@ void Database::checkMetaTable() {
int rc = sqlite3_exec(db, sql.c_str(), NULL, NULL, NULL); int rc = sqlite3_exec(db, sql.c_str(), NULL, NULL, NULL);
if (rc != SQLITE_OK) { if (rc != SQLITE_OK) {
std::cout << "[FATAL] Failed to migrate database" << std::endl; std::cout << "[FATAL] Failed to migrate database: " << sqlite3_errmsg(db) << std::endl;
exit(1); exit(1);
} }
@ -179,8 +179,7 @@ void Database::createMetaTable() {
const char* sql = R"( const char* sql = R"(
CREATE TABLE Meta( CREATE TABLE Meta(
Key TEXT NOT NULL UNIQUE, Key TEXT NOT NULL UNIQUE,
Value INTEGER NOT NULL, Value INTEGER NOT NULL
Created INTEGER DEFAULT (strftime('%s', 'now'))
); );
)"; )";
sqlite3_stmt* stmt; sqlite3_stmt* stmt;