kasts/src/database.h

49 lines
1.3 KiB
C
Raw Normal View History

2020-03-16 22:37:04 +01:00
/**
2020-08-14 20:56:04 +02:00
* SPDX-FileCopyrightText: 2020 Tobias Fella <fella@posteo.de>
* SPDX-FileCopyrightText: 2021-2022 Bart De Vries <bart@mogwai.be>
2020-03-16 22:37:04 +01:00
*
2020-08-14 20:56:04 +02:00
* SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
2020-03-16 22:37:04 +01:00
*/
#pragma once
2021-09-08 11:46:22 +02:00
#include <QObject>
2020-03-16 22:37:04 +01:00
#include <QSqlQuery>
#include <QString>
2020-03-16 22:37:04 +01:00
2020-05-26 16:32:07 +02:00
class Database : public QObject
2020-03-16 22:37:04 +01:00
{
2020-05-26 16:32:07 +02:00
Q_OBJECT
2020-03-16 22:37:04 +01:00
public:
static Database &instance()
{
static Database _instance;
return _instance;
}
static void openDatabase(const QString &connectionName = QLatin1String(QSqlDatabase::defaultConnection));
static void closeDatabase(const QString &connectionName = QLatin1String(QSqlDatabase::defaultConnection));
static bool execute(QSqlQuery &query);
static bool execute(const QString &query, const QString &connectionName = QLatin1String(QSqlDatabase::defaultConnection));
static bool transaction(const QString &connectionName = QLatin1String(QSqlDatabase::defaultConnection));
static bool commit(const QString &connectionName = QLatin1String(QSqlDatabase::defaultConnection));
2020-03-16 22:37:04 +01:00
private:
Database();
int version();
bool migrate();
bool migrateTo1();
bool migrateTo2();
bool migrateTo3();
bool migrateTo4();
2021-09-21 20:36:54 +00:00
bool migrateTo5();
2021-10-29 17:00:52 +02:00
bool migrateTo6();
void cleanup();
inline static const QString m_dbName = QStringLiteral("database.db3");
2020-03-16 22:37:04 +01:00
};