hyperion.ng/include/db/DBMigrationManager.h
LordGrey ecceb4e7ae
Refactor Settings DB and Handling (#1786)
* Refactor config API

* Corrections

* Test Qt 6.8

* Revert "Test Qt 6.8"

This reverts commit eceebec49ecf1a3eda281a0630a9a7577b44ef0a.

* Corrections 2

* Update Changelog

* Add configFilter element for getconfig call

* Do not create errors for DB updates when in read-only mode

* Have configuration migration and validation before Hyperion starts

* Correct Tests

* Corrections

* Add migration items

* Correct windows build

* Ensure that first instance as default one exists

* Remove dependency between AuthManager and SSDPHandler

* Correct typos

* Address CodeQL findings

* Replace CamkeSettings by Presets and provide debug scenarios
2024-09-30 22:03:13 +02:00

34 lines
1.3 KiB
C++

#ifndef DBMIGRATIONMANAGER_H
#define DBMIGRATIONMANAGER_H
#include <db/DBManager.h>
#include <utils/version.hpp>
#include <QObject>
class DBMigrationManager : public DBManager
{
Q_OBJECT
public:
explicit DBMigrationManager(QObject *parent = nullptr);
bool isMigrationRequired();
bool migrateSettings(QJsonObject& config);
private:
bool upgradeGlobalSettings(const semver::version& currentVersion, QJsonObject& config);
bool upgradeGlobalSettings_alpha_9(semver::version& currentVersion, QJsonObject& config);
bool upgradeGlobalSettings_2_0_12(semver::version& currentVersion, QJsonObject& config);
bool upgradeGlobalSettings_2_0_16(semver::version& currentVersion, QJsonObject& config);
bool upgradeGlobalSettings_2_1_0(semver::version& currentVersion, QJsonObject& config);
bool upgradeInstanceSettings(const semver::version& currentVersion, quint8 instance, QJsonObject& config);
bool upgradeInstanceSettings_alpha_9(semver::version& currentVersion, quint8 instance, QJsonObject& config);
bool upgradeInstanceSettings_2_0_12(semver::version& currentVersion, quint8 instance, QJsonObject& config);
bool upgradeInstanceSettings_2_0_13(semver::version& currentVersion, quint8 instance, QJsonObject& config);
bool upgradeInstanceSettings_2_0_16(semver::version& currentVersion, quint8 instance, QJsonObject& config);
};
#endif // DBMIGRATIONMANAGER_H