#include "core.h"
#include "coresession.h"
#include "coresettings.h"
+#include "postgresqlstorage.h"
#include "quassel.h"
#include "signalproxy.h"
#include "sqlitestorage.h"
// Register storage backends here!
registerStorageBackend(new SqliteStorage(this));
+ registerStorageBackend(new PostgreSqlStorage(this));
connect(&_storageSyncTimer, SIGNAL(timeout()), this, SLOT(syncStorage()));
_storageSyncTimer.start(10 * 60 * 1000); // 10 minutes
}
void Core::init() {
+ CoreSettings cs2;
+ QVariantMap connectionProperties = cs2.storageSettings().toMap()["ConnectionProperties"].toMap();
+ qDebug() << connectionProperties;
+ SqliteMigrationReader *reader = new SqliteMigrationReader();
+ qDebug() << "reader:" << reader->init();
+ PostgreSqlMigrationWriter *writer = new PostgreSqlMigrationWriter();
+ qDebug() << "writer:" << writer->init(connectionProperties);
+ qDebug() << qPrintable(QString("Migrating Storage backend %1 to %2...").arg(reader->displayName(), writer->displayName()));
+ if(reader->migrateTo(writer))
+ qDebug() << "Migration finished!";
+ return;
+
+
+
+
+
+
+
+
+
+
+
CoreSettings cs;
_configured = initStorage(cs.storageSettings().toMap());
return false;
}
- Storage::State storageState = storage->init(dbSettings);
+ QVariantMap connectionProperties = dbSettings["ConnectionProperties"].toMap();
+
+ Storage::State storageState = storage->init(connectionProperties);
switch(storageState) {
case Storage::NeedsSetup:
if(!setup)
return false; // trigger setup process
- if(storage->setup(dbSettings))
+ if(storage->setup(connectionProperties))
return initStorage(dbSettings, false);
// if setup wasn't successfull we mark the backend as unavailable
case Storage::NotAvailable:
QVariantMap v;
v["DisplayName"] = backend->displayName();
v["Description"] = backend->description();
+ v["ConnectionProperties"] = backend->setupKeys();
+ qDebug() << backend->setupKeys();
backends.append(v);
}
reply["StorageBackends"] = backends;