23 const QString &newnumber, QString &dbver)
29 QString(
"DELETE FROM settings WHERE value='%1';").arg(versionkey);
35 QString(
"DB Error (Deleting old %1 DB version number): \n"
36 "Query was: %2 \nError was: %3 \nnew version: %4")
41 LOG(VB_GENERAL, LOG_ERR, msg);
46 thequery = QString(
"INSERT INTO settings (value, data, hostname) "
47 "VALUES ('%1', %2, NULL);").arg(versionkey, newnumber);
53 QString(
"DB Error (Setting new %1 DB version number): \n"
54 "Query was: %2 \nError was: %3 \nnew version: %4")
59 LOG(VB_GENERAL, LOG_ERR, msg);
78 for (
const auto & update : updates)
80 const char *thequery = update.c_str();
81 if ((strlen(thequery) != 0U) && !query.
exec(thequery))
84 QString(
"DB Error (Performing %1 database upgrade): \n"
85 "Query was: %2 \nError was: %3")
89 LOG(VB_GENERAL, LOG_ERR, msg);
108 const QString &component,
const QString &versionkey,
113 LOG(VB_GENERAL, LOG_CRIT, QString(
"Upgrading to %1 schema version %2")
QSqlQuery wrapper that fetches a DB connection from the connection pool.
bool prepare(const QString &query)
QSqlQuery::prepare() is not thread safe in Qt <= 3.3.2.
QSqlError lastError(void) const
bool exec(void)
Wrap QSqlQuery::exec() so we can display SQL.
static MSqlQueryInfo InitCon(ConnectionReuse _reuse=kNormalConnection)
Only use this in combination with MSqlQuery constructor.
static QString DBErrorMessage(const QSqlError &err)
bool performActualUpdate(const QString &component, const QString &versionkey, const DBUpdates &updates, const QString &version, QString &dbver)
bool UpdateDBVersionNumber(const QString &component, const QString &versionkey, const QString &newnumber, QString &dbver)
Updates the schema version stored in the database.
bool performUpdateSeries(const QString &component, const DBUpdates &updates)
std::vector< std::string > DBUpdates
#define LOG(_MASK_, _LEVEL_, _QSTRING_)