MythTV master
dbutil.h
Go to the documentation of this file.
1#ifndef DBUTIL_H_
2#define DBUTIL_H_
3
4#include <QStringList>
5
6#include "mythbaseexp.h"
7#include "mythdbcon.h"
8
9enum MythDBBackupStatus : std::uint8_t
10{
16};
17
31{
32 public:
36 DBUtil() = default;
37 ~DBUtil() = default;
38
39 QString GetDBMSVersion(void);
40 int CompareDBMSVersion(int major, int minor=0, int point=0);
41
42 static MythDBBackupStatus BackupDB(QString &filename,
43 bool disableRotation = false);
44 static bool CheckTables(bool repair = false,
45 const QString &options = "QUICK");
46 static bool RepairTables(const QStringList &tables);
47
48 static bool IsNewDatabase(void);
49 static bool IsBackupInProgress(void);
50 static int CountClients(void);
51
52 static bool TryLockSchema(MSqlQuery &query, uint timeout_secs);
53 static void UnlockSchema(MSqlQuery &query);
54
55 static bool CheckTimeZoneSupport(void);
56 static bool CheckTableColumnExists(const QString &tableName, const QString &columnName);
57
58 static const int kUnknownVersionNumber;
59
60 protected:
61 static bool CreateTemporaryDBConf(
62 const QString &privateinfo, QString &filename);
63
64 private:
65 bool QueryDBMSVersion(void);
66 bool ParseDBMSVersion(void);
67
68 static QStringList GetTables(const QStringList &engines = QStringList());
69 static QStringList CheckRepairStatus(MSqlQuery &query);
70
71 static QString CreateBackupFilename(const QString& prefix = "mythconverg",
72 const QString& extension = ".sql");
73 static QString GetBackupDirectory();
74
75 static bool DoBackup(const QString &backupScript, QString &filename,
76 bool disableRotation = false);
77 static bool DoBackup(QString &filename);
78
80
81 int m_versionMajor { -1 };
82 int m_versionMinor { -1 };
83 int m_versionPoint { -1 };
84
85};
86
87#endif
Aggregates database and DBMS utility functions.
Definition: dbutil.h:31
QString m_versionString
Definition: dbutil.h:79
static const int kUnknownVersionNumber
Definition: dbutil.h:58
DBUtil()=default
Constructs the DBUtil object.
~DBUtil()=default
QSqlQuery wrapper that fetches a DB connection from the connection pool.
Definition: mythdbcon.h:128
#define minor(X)
Definition: compat.h:74
MythDBBackupStatus
Definition: dbutil.h:10
@ kDB_Backup_Unknown
Definition: dbutil.h:11
@ kDB_Backup_Disabled
Definition: dbutil.h:15
@ kDB_Backup_Failed
Definition: dbutil.h:12
@ kDB_Backup_Empty_DB
Definition: dbutil.h:14
@ kDB_Backup_Completed
Definition: dbutil.h:13
unsigned int uint
Definition: freesurround.h:24
#define MBASE_PUBLIC
Definition: mythbaseexp.h:15