qa: Replace Qt module includes by class ones
[quassel.git] / src / core / sqlitestorage.h
index d22ab07..618d5dd 100644 (file)
@@ -20,6 +20,9 @@
 
 #pragma once
 
+#include <memory>
+
+#include <QReadWriteLock>
 #include <QSqlDatabase>
 
 #include "abstractsqlstorage.h"
@@ -139,8 +142,24 @@ protected:
     QString driverName() override { return "QSQLITE"; }
     QString databaseName() override { return backlogFile(); }
     int installedSchemaVersion() override;
-    bool updateSchemaVersion(int newVersion) override;
+    bool updateSchemaVersion(int newVersion, bool clearUpgradeStep) override;
     bool setupSchemaVersion(int version) override;
+
+    /**
+     * Gets the last successful schema upgrade step, or an empty string if no upgrade is in progress
+     *
+     * @return Filename of last successful schema upgrade query, or empty string if not upgrading
+     */
+    QString schemaVersionUpgradeStep() override;
+
+    /**
+     * Sets the last successful schema upgrade step
+     *
+     * @param upgradeQuery  The filename of the last successful schema upgrade query
+     * @return True if successfully set, otherwise false
+     */
+    virtual bool setSchemaVersionUpgradeStep(QString upgradeQuery) override;
+
     bool safeExec(QSqlQuery& query, int retryCount = 0);
 
 private: