shared: common: Remove migration logic from ensureConfigured()
Running migrations is okay for initialization. However, doing it here might take ages, so the GUI simply would not show up. Therefore, migration must be done by the CLI or GUI and they should show that migrations are running
Esse commit está contido em:
pai
49b57e1740
commit
c03d7da821
@ -22,17 +22,18 @@ inline void initResources()
|
|||||||
|
|
||||||
bool Common::initSqliteDatabase(QString path)
|
bool Common::initSqliteDatabase(QString path)
|
||||||
{
|
{
|
||||||
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
|
try
|
||||||
db.setDatabaseName(path);
|
|
||||||
if(!db.open())
|
|
||||||
{
|
{
|
||||||
qDebug() << "failed to open database: " << path;
|
initResources();
|
||||||
|
DatabaseFactory factory(path);
|
||||||
|
DBMigrator migrator{factory};
|
||||||
|
migrator.performMigrations();
|
||||||
|
}
|
||||||
|
catch(std::exception &ex)
|
||||||
|
{
|
||||||
|
Logger::error() << "Failed to init dabase: " << ex.what();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
initResources();
|
|
||||||
DBMigrator migrator{db};
|
|
||||||
migrator.performMigrations();
|
|
||||||
db.close();
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -89,21 +90,6 @@ void Common::ensureConfigured()
|
|||||||
}
|
}
|
||||||
settings.setValue(SETTINGS_KEY_DBPATH, dbpath);
|
settings.setValue(SETTINGS_KEY_DBPATH, dbpath);
|
||||||
}
|
}
|
||||||
DatabaseFactory factory{dbpath};
|
|
||||||
auto db = factory.forCurrentThread();
|
|
||||||
DBMigrator migrator{db};
|
|
||||||
if(migrator.migrationNeeded())
|
|
||||||
{
|
|
||||||
QFile out;
|
|
||||||
out.open(stderr, QIODevice::WriteOnly);
|
|
||||||
Logger migrationLogger{&out};
|
|
||||||
migrationLogger << "Database is being upgraded, please be patient..." << Qt::endl;
|
|
||||||
QObject::connect(&migrator, &DBMigrator::migrationDone,
|
|
||||||
[&migrationLogger](uint32_t migration)
|
|
||||||
{ migrationLogger << "Progress: Successfully migrated to: " << migration << Qt::endl; });
|
|
||||||
migrator.performMigrations();
|
|
||||||
migrationLogger << "Database upgraded successfully" << Qt::endl;
|
|
||||||
}
|
|
||||||
QVariant pdfViewer = settings.value(SETTINGS_KEY_PDFVIEWER);
|
QVariant pdfViewer = settings.value(SETTINGS_KEY_PDFVIEWER);
|
||||||
if(!pdfViewer.isValid())
|
if(!pdfViewer.isValid())
|
||||||
{
|
{
|
||||||
|
Carregando…
Referência em uma nova issue
Block a user