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: 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");