updating sequences after mirgration
[quassel.git] / src / core / core.cpp
index e1a5360..5dd9721 100644 (file)
@@ -23,6 +23,7 @@
 #include "core.h"
 #include "coresession.h"
 #include "coresettings.h"
+#include "postgresqlstorage.h"
 #include "quassel.h"
 #include "signalproxy.h"
 #include "sqlitestorage.h"
@@ -132,12 +133,35 @@ Core::Core()
 
   // 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());
 
@@ -273,12 +297,14 @@ bool Core::initStorage(QVariantMap dbSettings, bool setup) {
     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:
@@ -501,6 +527,8 @@ void Core::processClientMessage(QTcpSocket *socket, const QVariantMap &msg) {
         QVariantMap v;
         v["DisplayName"] = backend->displayName();
         v["Description"] = backend->description();
+       v["ConnectionProperties"] = backend->setupKeys();
+       qDebug() << backend->setupKeys();
         backends.append(v);
       }
       reply["StorageBackends"] = backends;