diff --git a/resources/text/CHANGELOG b/resources/text/CHANGELOG
index 4b3494863..0a7b9282e 100644
--- a/resources/text/CHANGELOG
+++ b/resources/text/CHANGELOG
@@ -1,4 +1,19 @@
+2.0.0.2
+
+Fixed:
+
+
+Added:
+
+- MySQL backend now alows to defragment/optimize RSS Guard database.
+
+
+Changed:
+
+
+
2.0.0.1
Fixed:
diff --git a/src/miscellaneous/databasefactory.cpp b/src/miscellaneous/databasefactory.cpp
index 5f1d7a062..0c3f56713 100755
--- a/src/miscellaneous/databasefactory.cpp
+++ b/src/miscellaneous/databasefactory.cpp
@@ -428,8 +428,8 @@ QSqlDatabase DatabaseFactory::mysqlInitializeDatabase(const QString &connection_
query_db.exec(statement);
if (query_db.lastError().isValid()) {
- qFatal("MySQL database initialization failed. Initialization script '%s' is not correct.",
- APP_DB_MYSQL_INIT);
+ qFatal("MySQL database initialization failed. Initialization script '%s' is not correct. Error : '%s'.",
+ APP_DB_MYSQL_INIT, qPrintable(query_db.lastError().databaseText()));
}
}
@@ -453,6 +453,13 @@ QSqlDatabase DatabaseFactory::mysqlInitializeDatabase(const QString &connection_
return database;
}
+bool DatabaseFactory::mysqlVacuumDatabase() {
+ QSqlDatabase database = mysqlConnection(objectName());
+ QSqlQuery query_vacuum(database);
+
+ return query_vacuum.exec("OPTIMIZE TABLE rssguard.feeds;") && query_vacuum.exec("OPTIMIZE TABLE rssguard.messages;");
+}
+
QSqlDatabase DatabaseFactory::sqliteConnection(const QString &connection_name,
DatabaseFactory::DesiredType desired_type) {
if (desired_type == DatabaseFactory::StrictlyInMemory ||
@@ -548,6 +555,8 @@ bool DatabaseFactory::vacuumDatabase() {
return sqliteVacuumDatabase();
case MYSQL:
+ return mysqlVacuumDatabase();
+
default:
return false;
}
diff --git a/src/miscellaneous/databasefactory.h b/src/miscellaneous/databasefactory.h
index 901300464..135f6b9a3 100755
--- a/src/miscellaneous/databasefactory.h
+++ b/src/miscellaneous/databasefactory.h
@@ -107,6 +107,9 @@ class DatabaseFactory : public QObject {
// Initializes MySQL database.
QSqlDatabase mysqlInitializeDatabase(const QString &connection_name);
+ // Runs "VACUUM" on the database.
+ bool mysqlVacuumDatabase();
+
// True if MySQL database is fully initialized for use,
// otherwise false.
bool m_mysqlDatabaseInitialized;