diff --git a/resources/text/CHANGELOG b/resources/text/CHANGELOG
index 4c2acde2e..e0d0f52a3 100644
--- a/resources/text/CHANGELOG
+++ b/resources/text/CHANGELOG
@@ -8,6 +8,7 @@ Added:
Fixed:
+- Database cleanup tools now do support "shrinking" in in-memory databases, althouth it is bit hacky.
- Google suggest API now prevents completion if ENTER in address textbox is hit.
- Double-clickin on message now results in opening source article in mini web browser.
diff --git a/src/gui/formdatabasecleanup.cpp b/src/gui/formdatabasecleanup.cpp
index 1dab00d42..0a1998eb3 100755
--- a/src/gui/formdatabasecleanup.cpp
+++ b/src/gui/formdatabasecleanup.cpp
@@ -129,6 +129,7 @@ void FormDatabaseCleanup::loadDatabaseInfo() {
}
m_ui->m_txtDatabaseType->setText(qApp->database()->humanDriverName(qApp->database()->activeDatabaseDriver()));
- m_ui->m_checkShrink->setEnabled(qApp->database()->activeDatabaseDriver() == DatabaseFactory::SQLITE);
+ m_ui->m_checkShrink->setEnabled(qApp->database()->activeDatabaseDriver() == DatabaseFactory::SQLITE ||
+ qApp->database()->activeDatabaseDriver() == DatabaseFactory::SQLITE_MEMORY);
m_ui->m_checkShrink->setChecked(m_ui->m_checkShrink->isEnabled());
}
diff --git a/src/miscellaneous/databasefactory.cpp b/src/miscellaneous/databasefactory.cpp
index eaab76d7c..a6ebec1d3 100755
--- a/src/miscellaneous/databasefactory.cpp
+++ b/src/miscellaneous/databasefactory.cpp
@@ -704,8 +704,20 @@ QSqlDatabase DatabaseFactory::sqliteConnection(const QString &connection_name, D
}
}
-bool DatabaseFactory::sqliteVacuumDatabase() {
- QSqlDatabase database = sqliteConnection(objectName(), FromSettings);
+bool DatabaseFactory::sqliteVacuumDatabase() {
+ QSqlDatabase database;
+
+ if (m_activeDatabaseDriver == SQLITE) {
+ database = sqliteConnection(objectName(), StrictlyFileBased);
+ }
+ else if (m_activeDatabaseDriver == SQLITE_MEMORY) {
+ sqliteSaveMemoryDatabase();
+ database = sqliteConnection(objectName(), StrictlyFileBased);
+ }
+ else {
+ return false;
+ }
+
QSqlQuery query_vacuum(database);
return query_vacuum.exec("VACUUM");