From: Shane Synan Date: Tue, 29 Jan 2019 05:06:58 +0000 (-0500) Subject: core: Display problem step if storage setup fails X-Git-Tag: 0.13.1~8 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=c3263d1f2db00c39c2057b4126f9a1599d7f9570 core: Display problem step if storage setup fails Print the problematic setup step (e.g. 'setup_070_coreinfo') if storage backend initialization fails. This may help with debugging. Modify setupQueries() to return a list of query strings and resource filenames, used for the above. --- diff --git a/src/core/abstractsqlstorage.cpp b/src/core/abstractsqlstorage.cpp index 40a3bb04..c00ab62c 100644 --- a/src/core/abstractsqlstorage.cpp +++ b/src/core/abstractsqlstorage.cpp @@ -190,13 +190,13 @@ QString AbstractSqlStorage::queryString(const QString &queryName, int version) } -QStringList AbstractSqlStorage::setupQueries() +QList AbstractSqlStorage::setupQueries() { - QStringList queries; + QList queries; // The current schema is stored in the root folder, including setup scripts. QDir dir = QDir(QString(":/SQL/%1/").arg(displayName())); foreach(QFileInfo fileInfo, dir.entryInfoList(QStringList() << "setup*", QDir::NoFilter, QDir::Name)) { - queries << queryString(fileInfo.baseName()); + queries << SqlQueryResource(queryString(fileInfo.baseName()), fileInfo.baseName()); } return queries; } @@ -213,10 +213,11 @@ bool AbstractSqlStorage::setup(const QVariantMap &settings, const QProcessEnviro } db.transaction(); - foreach(QString queryString, setupQueries()) { - QSqlQuery query = db.exec(queryString); + foreach (auto queryResource, setupQueries()) { + QSqlQuery query = db.exec(queryResource.queryString); if (!watchQuery(query)) { - qCritical() << "Unable to setup Logging Backend!"; + qCritical() << qPrintable(QString("Unable to setup Logging Backend! Setup query failed (step: %1).") + .arg(queryResource.queryFilename)); db.rollback(); return false; } diff --git a/src/core/abstractsqlstorage.h b/src/core/abstractsqlstorage.h index 63d00c51..c911732a 100644 --- a/src/core/abstractsqlstorage.h +++ b/src/core/abstractsqlstorage.h @@ -87,7 +87,12 @@ protected: */ QString queryString(const QString &queryName, int version = 0); - QStringList setupQueries(); + /** + * Gets the collection of SQL setup queries and filenames to create a new database + * + * @return List of SQL query strings and filenames + */ + QList setupQueries(); /** * Gets the collection of SQL upgrade queries and filenames for a given schema version