KSUserDB - KSTARS_VERSION and SCHEMA_VERSION
In ksuserdb.cpp
:
bool KSUserDB::Initialize()
{
/* ... */
// Update database version to current KStars version
if (currentDBVersion != SCHEMA_VERSION)
{
QSqlQuery query(m_UserDB);
QString versionQuery = QString("UPDATE Version SET Version=%1").arg(SCHEMA_VERSION);
if (!query.exec(versionQuery))
qCWarning(KSTARS) << query.lastError();
}
/* ... */
}
But KSUserDB::RebuildDB()
stores KSTARS_VERSION
in the database field read as currentDBVersion
:
bool KSUserDB::RebuildDB()
{
qCInfo(KSTARS) << "Rebuilding User Database";
QVector<QString> tables;
tables.append("CREATE TABLE Version ("
"Version CHAR DEFAULT NULL)");
tables.append("INSERT INTO Version VALUES (\"" KSTARS_VERSION "\")");
/* ... */
}
Either KSTARS_VERSION
and SCHEMA_VERSION
are unrelated, and KSUserDB::RebuildDB()
should store SCHEMA_VERSION
instead, or SCHEMA_VERSION
is set to KSTARS_VERSION
whenever we update the schema in the code, and we should only update the Version
field when if is lower than KSTARS_VERSION
, not different.