From 8426fae7e92dfb7608f66be926c68c304b97cb01 Mon Sep 17 00:00:00 2001 From: Shane Synan Date: Mon, 28 Jan 2019 23:08:30 -0500 Subject: [PATCH] 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. --- src/core/abstractsqlstorage.cpp | 13 +++++++------ src/core/abstractsqlstorage.h | 7 ++++++- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/core/abstractsqlstorage.cpp b/src/core/abstractsqlstorage.cpp index 5aa7465c..d53ae9e2 100644 --- a/src/core/abstractsqlstorage.cpp +++ b/src/core/abstractsqlstorage.cpp @@ -180,13 +180,13 @@ QString AbstractSqlStorage::queryString(const QString& queryName, int version) return query.trimmed(); } -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; } @@ -201,10 +201,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 88ecfb5d..d3fb7929 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 -- 2.20.1