197 changes: 74 additions & 123 deletions mythplugins/mythgame/mythgame/gamedbcheck.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,69 +6,20 @@ using namespace std;

#include <mythcontext.h>
#include <mythdb.h>
#include <mythdbcheck.h>

#include "gamedbcheck.h"
#include "gamesettings.h"

const QString currentDatabaseVersion = "1019";

static bool UpdateDBVersionNumber(const QString &newnumber)
{

if (!gCoreContext->SaveSettingOnHost("GameDBSchemaVer",newnumber,nullptr))
{
LOG(VB_GENERAL, LOG_ERR,
QString("DB Error (Setting new DB version number): %1\n")
.arg(newnumber));

return false;
}

return true;
}

static bool performActualUpdate(const QString updates[], const QString& version,
QString &dbver)
{
MSqlQuery query(MSqlQuery::InitCon());

LOG(VB_GENERAL, LOG_NOTICE,
QString("Upgrading to MythGame schema version ") + version);

int counter = 0;
QString thequery = updates[counter];

while (thequery != "")
{
if (!query.exec(thequery))
{
QString msg =
QString("DB Error (Performing database upgrade): \n"
"Query was: %1 \nError was: %2 \nnew version: %3")
.arg(thequery)
.arg(MythDB::DBErrorMessage(query.lastError()))
.arg(version);
LOG(VB_GENERAL, LOG_ERR, msg);
return false;
}

counter++;
thequery = updates[counter];
}

if (!UpdateDBVersionNumber(version))
return false;

dbver = version;
return true;
}
const QString MythGameVersionName = "GameDBSchemaVer";

static bool InitializeDatabase(void)
{
LOG(VB_GENERAL, LOG_NOTICE,
"Inserting MythGame initial database information.");

const QString updates[] = {
DBUpdates updates {
"CREATE TABLE gamemetadata ("
" `system` varchar(128) NOT NULL default '',"
" romname varchar(128) NOT NULL default '',"
Expand Down Expand Up @@ -122,11 +73,11 @@ static bool InitializeDatabase(void)
" KEY name (name),"
" KEY description (description),"
" KEY platform (platform)"
");",
""
");"
};
QString dbver = "";
return performActualUpdate(updates, "1011", dbver);
return performActualUpdate("MythGame", MythGameVersionName,
updates, "1011", dbver);
}

bool UpgradeGameDatabaseSchema(void)
Expand All @@ -146,11 +97,11 @@ bool UpgradeGameDatabaseSchema(void)

if (dbver == "1000")
{
const QString updates[] = {
"ALTER TABLE gamemetadata ADD COLUMN favorite BOOL NULL;",
""
DBUpdates updates {
"ALTER TABLE gamemetadata ADD COLUMN favorite BOOL NULL;"
};
if (!performActualUpdate(updates, "1001", dbver))
if (!performActualUpdate("MythGame", MythGameVersionName,
updates, "1001", dbver))
return false;
}

Expand All @@ -159,7 +110,7 @@ bool UpgradeGameDatabaseSchema(void)
|| (dbver == "1002"))
|| (dbver == "1001"))
{
const QString updates[] = {
DBUpdates updates {

"CREATE TABLE gameplayers ("
" gameplayerid int(10) unsigned NOT NULL auto_increment,"
Expand All @@ -174,21 +125,21 @@ bool UpgradeGameDatabaseSchema(void)
" UNIQUE KEY playername (playername)"
");",
"ALTER TABLE gamemetadata ADD COLUMN rompath varchar(255) NOT NULL default ''; ",
"ALTER TABLE gamemetadata ADD COLUMN gametype varchar(64) NOT NULL default ''; ",
""
"ALTER TABLE gamemetadata ADD COLUMN gametype varchar(64) NOT NULL default ''; "
};
if (!performActualUpdate(updates, "1005", dbver))
if (!performActualUpdate("MythGame", MythGameVersionName,
updates, "1005", dbver))
return false;
}

if (dbver == "1005")
{
const QString updates[] = {
DBUpdates updates {
"ALTER TABLE gameplayers ADD COLUMN spandisks tinyint(1) NOT NULL default 0; ",
"ALTER TABLE gamemetadata ADD COLUMN diskcount tinyint(1) NOT NULL default 1; ",
""
"ALTER TABLE gamemetadata ADD COLUMN diskcount tinyint(1) NOT NULL default 1; "
};
if (!performActualUpdate(updates, "1006", dbver))
if (!performActualUpdate("MythGame", MythGameVersionName,
updates, "1006", dbver))
return false;
}

Expand All @@ -202,31 +153,31 @@ bool UpgradeGameDatabaseSchema(void)
MythDB::DBError("update GameAllTreeLevels", query);
}

QString updates[] = {
DBUpdates updates = {
"ALTER TABLE gamemetadata ADD COLUMN country varchar(128) NOT NULL default ''; ",
"ALTER TABLE gamemetadata ADD COLUMN crc_value varchar(64) NOT NULL default ''; ",
"ALTER TABLE gamemetadata ADD COLUMN display tinyint(1) NOT NULL default 1; ",
""
"ALTER TABLE gamemetadata ADD COLUMN display tinyint(1) NOT NULL default 1; "
};

if (!performActualUpdate(updates, "1007", dbver))
if (!performActualUpdate("MythGame", MythGameVersionName,
updates, "1007", dbver))
return false;
}

if (dbver == "1007")
{
const QString updates[] = {
"ALTER TABLE gameplayers MODIFY commandline TEXT NOT NULL default ''; ",
""
DBUpdates updates {
"ALTER TABLE gameplayers MODIFY commandline TEXT NOT NULL default ''; "
};

if (!performActualUpdate(updates, "1008", dbver))
if (!performActualUpdate("MythGame", MythGameVersionName,
updates, "1008", dbver))
return false;
}

if (dbver == "1008")
{
const QString updates[] = {
DBUpdates updates {
"CREATE TABLE romdb ("
" crc varchar(64) NOT NULL default '',"
" name varchar(128) NOT NULL default '',"
Expand All @@ -246,56 +197,56 @@ bool UpgradeGameDatabaseSchema(void)
" KEY name (name),"
" KEY description (description),"
" KEY platform (platform)"
");",
""
");"
};

if (!performActualUpdate(updates, "1009", dbver))
if (!performActualUpdate("MythGame", MythGameVersionName,
updates, "1009", dbver))
return false;
}

if (dbver == "1009")
{
const QString updates[] = {
"ALTER TABLE gamemetadata MODIFY year varchar(10) not null default '';",
""
DBUpdates updates {
"ALTER TABLE gamemetadata MODIFY year varchar(10) not null default '';"
};

if (!performActualUpdate(updates, "1010", dbver))
if (!performActualUpdate("MythGame", MythGameVersionName,
updates, "1010", dbver))
return false;
}

if (dbver == "1010")
{
const QString updates[] = {
DBUpdates updates {

"ALTER TABLE gamemetadata ADD COLUMN version varchar(64) NOT NULL default '';",
"ALTER TABLE gamemetadata ADD COLUMN publisher varchar(128) NOT NULL default '';",
""
"ALTER TABLE gamemetadata ADD COLUMN publisher varchar(128) NOT NULL default '';"
};

if (!performActualUpdate(updates, "1011", dbver))
if (!performActualUpdate("MythGame", MythGameVersionName,
updates, "1011", dbver))
return false;
}


if (dbver == "1011")
{
const QString updates[] = {
"ALTER TABLE romdb ADD COLUMN binfile varchar(64) NOT NULL default ''; ",
""
DBUpdates updates {
"ALTER TABLE romdb ADD COLUMN binfile varchar(64) NOT NULL default ''; "
};

if (!performActualUpdate(updates, "1012", dbver))
if (!performActualUpdate("MythGame", MythGameVersionName,
updates, "1012", dbver))
return false;
}


if (dbver == "1012")
{
const QString updates[] = {
QString("ALTER DATABASE %1 DEFAULT CHARACTER SET latin1;")
.arg(gContext->GetDatabaseParams().m_dbName),
DBUpdates updates {
qPrintable(QString("ALTER DATABASE %1 DEFAULT CHARACTER SET latin1;")
.arg(gContext->GetDatabaseParams().m_dbName)),
"ALTER TABLE gamemetadata"
" MODIFY `system` varbinary(128) NOT NULL default '',"
" MODIFY romname varbinary(128) NOT NULL default '',"
Expand Down Expand Up @@ -328,20 +279,20 @@ QString("ALTER DATABASE %1 DEFAULT CHARACTER SET latin1;")
" MODIFY platform varbinary(64) NOT NULL default '',"
" MODIFY flags varbinary(64) NOT NULL default '',"
" MODIFY version varbinary(64) NOT NULL default '',"
" MODIFY binfile varbinary(64) NOT NULL default '';",
""
" MODIFY binfile varbinary(64) NOT NULL default '';"
};

if (!performActualUpdate(updates, "1013", dbver))
if (!performActualUpdate("MythGame", MythGameVersionName,
updates, "1013", dbver))
return false;
}


if (dbver == "1013")
{
const QString updates[] = {
QString("ALTER DATABASE %1 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;")
.arg(gContext->GetDatabaseParams().m_dbName),
DBUpdates updates {
qPrintable(QString("ALTER DATABASE %1 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;")
.arg(gContext->GetDatabaseParams().m_dbName)),
"ALTER TABLE gamemetadata"
" DEFAULT CHARACTER SET default,"
" MODIFY `system` varchar(128) CHARACTER SET utf8 NOT NULL default '',"
Expand Down Expand Up @@ -377,75 +328,75 @@ QString("ALTER DATABASE %1 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;")
" MODIFY platform varchar(64) CHARACTER SET utf8 NOT NULL default '',"
" MODIFY flags varchar(64) CHARACTER SET utf8 NOT NULL default '',"
" MODIFY version varchar(64) CHARACTER SET utf8 NOT NULL default '',"
" MODIFY binfile varchar(64) CHARACTER SET utf8 NOT NULL default '';",
""
" MODIFY binfile varchar(64) CHARACTER SET utf8 NOT NULL default '';"
};

if (!performActualUpdate(updates, "1014", dbver))
if (!performActualUpdate("MythGame", MythGameVersionName,
updates, "1014", dbver))
return false;
}

if (dbver == "1014")
{
const QString updates[] = {
DBUpdates updates {

"ALTER TABLE gamemetadata ADD fanart VARCHAR(255) NOT NULL AFTER rompath,"
"ADD boxart VARCHAR( 255 ) NOT NULL AFTER fanart;",
""
"ADD boxart VARCHAR( 255 ) NOT NULL AFTER fanart;"
};

if (!performActualUpdate(updates, "1015", dbver))
if (!performActualUpdate("MythGame", MythGameVersionName,
updates, "1015", dbver))
return false;
}

if (dbver == "1015")
{
const QString updates[] = {
DBUpdates updates {

"ALTER TABLE gamemetadata ADD screenshot VARCHAR(255) NOT NULL AFTER rompath,"
"ADD plot TEXT NOT NULL AFTER fanart;",
""
"ADD plot TEXT NOT NULL AFTER fanart;"
};

if (!performActualUpdate(updates, "1016", dbver))
if (!performActualUpdate("MythGame", MythGameVersionName,
updates, "1016", dbver))
return false;
}

if (dbver == "1016")
{
const QString updates[] = {
DBUpdates updates {

"ALTER TABLE gamemetadata ADD inetref TEXT AFTER crc_value;",
""
"ALTER TABLE gamemetadata ADD inetref TEXT AFTER crc_value;"
};

if (!performActualUpdate(updates, "1017", dbver))
if (!performActualUpdate("MythGame", MythGameVersionName,
updates, "1017", dbver))
return false;
}

if (dbver == "1017")
{
const QString updates[] = {
DBUpdates updates {

"ALTER TABLE gamemetadata ADD intid int(11) NOT NULL AUTO_INCREMENT "
"PRIMARY KEY FIRST;",
""
"PRIMARY KEY FIRST;"
};

if (!performActualUpdate(updates, "1018", dbver))
if (!performActualUpdate("MythGame", MythGameVersionName,
updates, "1018", dbver))
return false;
}

if (dbver == "1018")
{
const QString updates[] = {
DBUpdates updates {
"ALTER TABLE romdb MODIFY description varchar(192) CHARACTER SET utf8 NOT NULL default '';",
"ALTER TABLE romdb MODIFY binfile varchar(128) CHARACTER SET utf8 NOT NULL default '';",
"ALTER TABLE romdb MODIFY filesize int(12) unsigned default NULL;",
""
"ALTER TABLE romdb MODIFY filesize int(12) unsigned default NULL;"
};

if (!performActualUpdate(updates, "1019", dbver))
if (!performActualUpdate("MythGame", MythGameVersionName,
updates, "1019", dbver))
return false;
}

Expand Down
252 changes: 99 additions & 153 deletions mythplugins/mythmusic/mythmusic/musicdbcheck.cpp

Large diffs are not rendered by default.

69 changes: 10 additions & 59 deletions mythplugins/mythnews/mythnews/newsdbcheck.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,62 +8,13 @@
// Myth headers
#include <mythcontext.h>
#include <mythdb.h>
#include <mythdbcheck.h>

// MythNews headers
#include "newsdbcheck.h"

const QString currentDatabaseVersion = "1001";

static bool UpdateDBVersionNumber(const QString &newnumber)
{

if (!gCoreContext->SaveSettingOnHost("NewsDBSchemaVer", newnumber, nullptr))
{
LOG(VB_GENERAL, LOG_ERR,
QString("DB Error (Setting new DB version number): %1\n")
.arg(newnumber));

return false;
}

return true;
}

static bool performActualUpdate(const QString updates[], const QString& version,
QString &dbver)
{
MSqlQuery query(MSqlQuery::InitCon());

LOG(VB_GENERAL, LOG_NOTICE,
"Upgrading to MythNews schema version " + version);

int counter = 0;
QString thequery = updates[counter];

while (thequery != "")
{
if (!query.exec(thequery))
{
QString msg =
QString("DB Error (Performing database upgrade): \n"
"Query was: %1 \nError was: %2 \nnew version: %3")
.arg(thequery)
.arg(MythDB::DBErrorMessage(query.lastError()))
.arg(version);
LOG(VB_GENERAL, LOG_ERR, msg);
return false;
}

counter++;
thequery = updates[counter];
}

if (!UpdateDBVersionNumber(version))
return false;

dbver = version;
return true;
}
const QString MythNewsVersionName = "NewsDBSchemaVer";

bool UpgradeNewsDatabaseSchema(void)
{
Expand All @@ -77,29 +28,29 @@ bool UpgradeNewsDatabaseSchema(void)
LOG(VB_GENERAL, LOG_NOTICE,
"Inserting MythNews initial database information.");

const QString updates[] =
DBUpdates updates
{
"CREATE TABLE IF NOT EXISTS newssites "
"( name VARCHAR(100) NOT NULL PRIMARY KEY,"
" category VARCHAR(255) NOT NULL,"
" url VARCHAR(255) NOT NULL,"
" ico VARCHAR(255),"
" updated INT UNSIGNED);",
""
" updated INT UNSIGNED);"
};
if (!performActualUpdate(updates, "1000", dbver))
if (!performActualUpdate("MythNews", MythNewsVersionName,
updates, "1000", dbver))
return false;
}

if (dbver == "1000")
{
const QString updates[] =
DBUpdates updates
{
"ALTER TABLE `newssites` ADD `podcast` BOOL NOT NULL DEFAULT '0';",
""
"ALTER TABLE `newssites` ADD `podcast` BOOL NOT NULL DEFAULT '0';"
};

if (!performActualUpdate(updates, "1001", dbver))
if (!performActualUpdate("MythNews", MythNewsVersionName,
updates, "1001", dbver))
return false;
}

Expand Down
144 changes: 56 additions & 88 deletions mythplugins/mythweather/mythweather/weatherdbcheck.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,58 +5,12 @@

#include <mythcontext.h>
#include <mythdb.h>
#include <mythdbcheck.h>

#include "weatherdbcheck.h"

const QString currentDatabaseVersion = "1006";

static bool UpdateDBVersionNumber(const QString &newnumber)
{
if (!gCoreContext->SaveSettingOnHost("WeatherDBSchemaVer",newnumber,nullptr))
{
LOG(VB_GENERAL, LOG_ERR,
QString("DB Error (Setting new DB version number): %1\n")
.arg(newnumber));

return false;
}

return true;
}

static bool performActualUpdate(const QStringList& updates, const QString& version,
QString &dbver)
{
LOG(VB_GENERAL, LOG_NOTICE,
"Upgrading to MythWeather schema version " + version);

MSqlQuery query(MSqlQuery::InitCon());

QStringList::const_iterator it = updates.begin();

while (it != updates.end())
{
QString thequery = *it;
if (!query.exec(thequery))
{
QString msg =
QString("DB Error (Performing database upgrade): \n"
"Query was: %1 \nError was: %2 \nnew version: %3")
.arg(thequery)
.arg(MythDB::DBErrorMessage(query.lastError()))
.arg(version);
LOG(VB_GENERAL, LOG_ERR, msg);
return false;
}
++it;
}

if (!UpdateDBVersionNumber(version))
return false;

dbver = version;
return true;
}
const QString MythWeatherVersionName = "WeatherDBSchemaVer";

/*
* TODO Probably the biggest change to simplify things would be to get rid of
Expand All @@ -75,8 +29,8 @@ bool InitializeDatabase()
{
LOG(VB_GENERAL, LOG_NOTICE,
"Inserting MythWeather initial database information.");
QStringList updates;
updates << "CREATE TABLE IF NOT EXISTS weathersourcesettings ("
DBUpdates updates {
"CREATE TABLE IF NOT EXISTS weathersourcesettings ("
"sourceid INT UNSIGNED NOT NULL AUTO_INCREMENT,"
"source_name VARCHAR(64) NOT NULL,"
"update_timeout INT UNSIGNED NOT NULL DEFAULT '600',"
Expand All @@ -87,15 +41,15 @@ bool InitializeDatabase()
"version VARCHAR(32) NULL,"
"email VARCHAR(255) NULL,"
"types MEDIUMTEXT NULL,"
"PRIMARY KEY(sourceid)) ENGINE=InnoDB;"
<< "CREATE TABLE IF NOT EXISTS weatherscreens ("
"PRIMARY KEY(sourceid)) ENGINE=InnoDB;",
"CREATE TABLE IF NOT EXISTS weatherscreens ("
"screen_id INT UNSIGNED NOT NULL AUTO_INCREMENT,"
"draworder INT UNSIGNED NOT NULL,"
"container VARCHAR(64) NOT NULL,"
"hostname VARCHAR(255) NULL,"
"units TINYINT UNSIGNED NOT NULL,"
"PRIMARY KEY(screen_id)) ENGINE=InnoDB;"
<< "CREATE TABLE IF NOT EXISTS weatherdatalayout ("
"PRIMARY KEY(screen_id)) ENGINE=InnoDB;",
"CREATE TABLE IF NOT EXISTS weatherdatalayout ("
"location VARCHAR(64) NOT NULL,"
"dataitem VARCHAR(64) NOT NULL,"
"weatherscreens_screen_id INT UNSIGNED NOT NULL,"
Expand All @@ -111,67 +65,73 @@ bool InitializeDatabase()
"FOREIGN KEY(weathersourcesettings_sourceid) "
"REFERENCES weathersourcesettings(sourceid) "
"ON DELETE RESTRICT "
"ON UPDATE CASCADE) ENGINE=InnoDB;";
"ON UPDATE CASCADE) ENGINE=InnoDB;"
};
/*
* TODO Possible want to delete old stuff (i.e. agressiveness, locale..)
* that we don't use any more
*/

if (!performActualUpdate(updates, "1000", dbver))
if (!performActualUpdate("MythWeather", MythWeatherVersionName,
updates, "1000", dbver))
return false;
}

if (dbver == "1000")
{
QStringList updates;
updates << "ALTER TABLE weathersourcesettings ADD COLUMN updated "
DBUpdates updates {
"ALTER TABLE weathersourcesettings ADD COLUMN updated "
"TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP "
" ON UPDATE CURRENT_TIMESTAMP;";
" ON UPDATE CURRENT_TIMESTAMP;"
};

if (!performActualUpdate(updates, "1001", dbver))
if (!performActualUpdate("MythWeather", MythWeatherVersionName,
updates, "1001", dbver))
return false;
}



if (dbver == "1001")
{
QStringList updates;
updates << QString("ALTER DATABASE %1 DEFAULT CHARACTER SET latin1;")
.arg(gContext->GetDatabaseParams().m_dbName) <<
DBUpdates updates {
qPrintable(QString("ALTER DATABASE %1 DEFAULT CHARACTER SET latin1;")
.arg(gContext->GetDatabaseParams().m_dbName)),
"ALTER TABLE weatherdatalayout"
" MODIFY location varbinary(64) NOT NULL,"
" MODIFY dataitem varbinary(64) NOT NULL;" <<
" MODIFY dataitem varbinary(64) NOT NULL;",
"ALTER TABLE weatherscreens"
" MODIFY container varbinary(64) NOT NULL,"
" MODIFY hostname varbinary(64) default NULL;" <<
" MODIFY hostname varbinary(64) default NULL;",
"ALTER TABLE weathersourcesettings"
" MODIFY source_name varbinary(64) NOT NULL,"
" MODIFY hostname varbinary(64) default NULL,"
" MODIFY path varbinary(255) default NULL,"
" MODIFY author varbinary(128) default NULL,"
" MODIFY version varbinary(32) default NULL,"
" MODIFY email varbinary(255) default NULL,"
" MODIFY types mediumblob;";
" MODIFY types mediumblob;"
};

if (!performActualUpdate(updates, "1002", dbver))
if (!performActualUpdate("MythWeather", MythWeatherVersionName,
updates, "1002", dbver))
return false;
}


if (dbver == "1002")
{
QStringList updates;
updates << QString("ALTER DATABASE %1 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;")
.arg(gContext->GetDatabaseParams().m_dbName) <<
DBUpdates updates {
qPrintable(QString("ALTER DATABASE %1 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;")
.arg(gContext->GetDatabaseParams().m_dbName)),
"ALTER TABLE weatherdatalayout"
" DEFAULT CHARACTER SET default,"
" MODIFY location varchar(64) CHARACTER SET utf8 NOT NULL,"
" MODIFY dataitem varchar(64) CHARACTER SET utf8 NOT NULL;" <<
" MODIFY dataitem varchar(64) CHARACTER SET utf8 NOT NULL;",
"ALTER TABLE weatherscreens"
" DEFAULT CHARACTER SET default,"
" MODIFY container varchar(64) CHARACTER SET utf8 NOT NULL,"
" MODIFY hostname varchar(64) CHARACTER SET utf8 default NULL;" <<
" MODIFY hostname varchar(64) CHARACTER SET utf8 default NULL;",
"ALTER TABLE weathersourcesettings"
" DEFAULT CHARACTER SET default,"
" MODIFY source_name varchar(64) CHARACTER SET utf8 NOT NULL,"
Expand All @@ -180,40 +140,48 @@ bool InitializeDatabase()
" MODIFY author varchar(128) CHARACTER SET utf8 default NULL,"
" MODIFY version varchar(32) CHARACTER SET utf8 default NULL,"
" MODIFY email varchar(255) CHARACTER SET utf8 default NULL,"
" MODIFY types mediumtext CHARACTER SET utf8;";
" MODIFY types mediumtext CHARACTER SET utf8;"
};

if (!performActualUpdate(updates, "1003", dbver))
if (!performActualUpdate("MythWeather", MythWeatherVersionName,
updates, "1003", dbver))
return false;
}

if (dbver == "1003")
{
QStringList updates;
updates << "DELETE FROM keybindings "
" WHERE action = 'DELETE' AND context = 'Weather';";
DBUpdates updates {
"DELETE FROM keybindings "
" WHERE action = 'DELETE' AND context = 'Weather';"
};

if (!performActualUpdate(updates, "1004", dbver))
if (!performActualUpdate("MythWeather", MythWeatherVersionName,
updates, "1004", dbver))
return false;
}

if (dbver == "1004")
{
QStringList updates;
updates << "ALTER TABLE weatherdatalayout"
" MODIFY location varchar(128) CHARACTER SET utf8 NOT NULL;";
DBUpdates updates {
"ALTER TABLE weatherdatalayout"
" MODIFY location varchar(128) CHARACTER SET utf8 NOT NULL;"
};

if (!performActualUpdate(updates, "1005", dbver))
if (!performActualUpdate("MythWeather", MythWeatherVersionName,
updates, "1005", dbver))
return false;
}

if (dbver == "1005")
{
QStringList updates;
updates << "ALTER TABLE weathersourcesettings MODIFY COLUMN updated "
" TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP "
" ON UPDATE CURRENT_TIMESTAMP;";

if (!performActualUpdate(updates, "1006", dbver))
DBUpdates updates {
"ALTER TABLE weathersourcesettings MODIFY COLUMN updated "
" TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP "
" ON UPDATE CURRENT_TIMESTAMP;"
};

if (!performActualUpdate("MythWeather", MythWeatherVersionName,
updates, "1006", dbver))
return false;
}

Expand Down
928 changes: 464 additions & 464 deletions mythtv/libs/libmythtv/dbcheck.cpp

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions mythtv/libs/libmythtv/libmythtv.pro
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ HEADERS += mythframe.h
# Misc. needed by backend/frontend
HEADERS += mythtvexp.h
HEADERS += recordinginfo.h
HEADERS += dbcheck.h
HEADERS += dbcheck.h mythdbcheck.h
HEADERS += videodbcheck.h
HEADERS += tvremoteutil.h tv.h
HEADERS += jobqueue.h
Expand Down Expand Up @@ -249,7 +249,7 @@ HEADERS += srtwriter.h
SOURCES += srtwriter.cpp

inc.path = $${PREFIX}/include/mythtv/
inc.files = playgroup.h
inc.files = playgroup.h mythdbcheck.h
inc.files += mythtvexp.h metadataimagehelper.h
inc.files += mythavutil.h mythframe.h

Expand Down
18 changes: 18 additions & 0 deletions mythtv/libs/libmythtv/mythdbcheck.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#ifndef MYTHDBCHECK_H_
#define MYTHDBCHECK_H_

#include <string>
#include <vector>

#include "mythtvexp.h"

using DBUpdates = std::vector<std::string>;

MTV_PUBLIC bool performActualUpdate(
const QString &component, const QString &versionkey,
DBUpdates updates, const QString &version, QString &dbver);

MTV_PUBLIC bool UpdateDBVersionNumber(const QString &component, const QString &versionkey,
const QString &newnumber, QString &dbver);

#endif
331 changes: 136 additions & 195 deletions mythtv/libs/libmythtv/videodbcheck.cpp

Large diffs are not rendered by default.