/***************************************************************************
- * Copyright (C) 2005-2018 by the Quassel Project *
+ * Copyright (C) 2005-2019 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
void delUser(UserId user) override;
void setUserSetting(UserId userId, const QString &settingName, const QVariant &data) override;
QVariant getUserSetting(UserId userId, const QString &settingName, const QVariant &defaultData = QVariant()) override;
+ void setCoreState(const QVariantList &data) override;
+ QVariantList getCoreState(const QVariantList &data) override;
/* Identity handling */
IdentityId createIdentity(UserId user, CoreIdentity &identity) override;
/* Sysident handling */
QMap<UserId, QString> getAllAuthUserNames() override;
- QString getAuthUserName(UserId user) override;
protected:
bool initDbSession(QSqlDatabase &db) override;
- void setConnectionProperties(const QVariantMap &properties) override;
+ void setConnectionProperties(const QVariantMap &properties,
+ const QProcessEnvironment &environment,
+ bool loadFromEnvironment) override;
QString driverName() override { return "QPSQL"; }
QString hostName() override { return _hostName; }
int port() override { return _port; }
QString userName() override { return _userName; }
QString password() override { return _password; }
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;
+
void safeExec(QSqlQuery &query);
bool beginTransaction(QSqlDatabase &db);
bool writeMo(const BacklogMO &backlog) override;
bool writeMo(const IrcServerMO &ircserver) override;
bool writeMo(const UserSettingMO &userSetting) override;
+ bool writeMo(const CoreStateMO &coreState) override;
bool prepareQuery(MigrationObject mo) override;