File src/BuildHistory.cpp changed (mode: 100644) (index 2097bea..e1a9110) |
... |
... |
static void updateDBSchema(DB &db, int fromVersion); |
37 |
37 |
/** |
/** |
38 |
38 |
* @brief Current database scheme version. |
* @brief Current database scheme version. |
39 |
39 |
*/ |
*/ |
40 |
|
const int AppDBVersion = 3; |
|
|
40 |
|
const int AppDBVersion = 1; |
41 |
41 |
|
|
42 |
42 |
File::File(std::string path, std::string hash, std::vector<int> coverage) |
File::File(std::string path, std::string hash, std::vector<int> coverage) |
43 |
43 |
: path(std::move(path)), hash(std::move(hash)), |
: path(std::move(path)), hash(std::move(hash)), |
|
... |
... |
updateDBSchema(DB &db, int fromVersion) |
310 |
310 |
buildid INTEGER, |
buildid INTEGER, |
311 |
311 |
vcsref TEXT NOT NULL, |
vcsref TEXT NOT NULL, |
312 |
312 |
vcsrefname TEXT NOT NULL, |
vcsrefname TEXT NOT NULL, |
313 |
|
covered INTEGER, |
|
314 |
|
uncovered INTEGER, |
|
|
313 |
|
covered INTEGER NOT NULL, |
|
314 |
|
missed INTEGER NOT NULL, |
|
315 |
|
timestamp INTEGER NOT NULL |
|
316 |
|
DEFAULT (CAST(strftime('%s', 'now') AS INT)), |
315 |
317 |
|
|
316 |
318 |
PRIMARY KEY (buildid) |
PRIMARY KEY (buildid) |
317 |
319 |
) |
) |
|
... |
... |
updateDBSchema(DB &db, int fromVersion) |
337 |
339 |
) |
) |
338 |
340 |
)"); |
)"); |
339 |
341 |
// Fall through. |
// Fall through. |
340 |
|
case 1: |
|
341 |
|
db.execute(R"( |
|
342 |
|
CREATE TABLE builds_new ( |
|
343 |
|
buildid INTEGER, |
|
344 |
|
vcsref TEXT NOT NULL, |
|
345 |
|
vcsrefname TEXT NOT NULL, |
|
346 |
|
covered INTEGER NOT NULL, |
|
347 |
|
uncovered INTEGER NOT NULL, |
|
348 |
|
timestamp INTEGER NOT NULL |
|
349 |
|
DEFAULT (CAST(strftime('%s', 'now') AS INT)), |
|
350 |
|
|
|
351 |
|
PRIMARY KEY (buildid) |
|
352 |
|
) |
|
353 |
|
)"); |
|
354 |
|
|
|
355 |
|
for (std::tuple<int, std::string, std::string, int, int> vals : |
|
356 |
|
db.queryAll("SELECT buildid, vcsref, vcsrefname, " |
|
357 |
|
"covered, uncovered " |
|
358 |
|
"FROM builds")) { |
|
359 |
|
db.execute("INSERT INTO builds_new (buildid, vcsref, " |
|
360 |
|
"vcsrefname, covered, " |
|
361 |
|
"uncovered) " |
|
362 |
|
"VALUES (:buildid, :ref, :refname, :covered, " |
|
363 |
|
":uncovered)", |
|
364 |
|
{ ":buildid"_b = std::get<0>(vals), |
|
365 |
|
":ref"_b = std::get<1>(vals), |
|
366 |
|
":refname"_b = std::get<2>(vals), |
|
367 |
|
":covered"_b = std::get<3>(vals), |
|
368 |
|
":uncovered"_b = std::get<4>(vals) }); |
|
369 |
|
} |
|
370 |
|
|
|
371 |
|
db.execute("DROP TABLE builds"); |
|
372 |
|
db.execute("ALTER TABLE builds_new RENAME TO builds"); |
|
373 |
|
// Fall through. |
|
374 |
|
case 2: |
|
375 |
|
db.execute(R"( |
|
376 |
|
CREATE TABLE builds_new ( |
|
377 |
|
buildid INTEGER, |
|
378 |
|
vcsref TEXT NOT NULL, |
|
379 |
|
vcsrefname TEXT NOT NULL, |
|
380 |
|
covered INTEGER NOT NULL, |
|
381 |
|
missed INTEGER NOT NULL, |
|
382 |
|
timestamp INTEGER NOT NULL |
|
383 |
|
DEFAULT (CAST(strftime('%s', 'now') AS INT)), |
|
384 |
|
|
|
385 |
|
PRIMARY KEY (buildid) |
|
386 |
|
) |
|
387 |
|
)"); |
|
388 |
|
db.execute("INSERT INTO builds_new (buildid, vcsref, vcsrefname, " |
|
389 |
|
"covered, missed) " |
|
390 |
|
"SELECT buildid, vcsref, vcsrefname, covered, uncovered " |
|
391 |
|
"FROM builds"); |
|
392 |
|
db.execute("DROP TABLE builds"); |
|
393 |
|
db.execute("ALTER TABLE builds_new RENAME TO builds"); |
|
394 |
|
// Fall through. |
|
395 |
342 |
case AppDBVersion: |
case AppDBVersion: |
396 |
343 |
break; |
break; |
397 |
344 |
} |
} |