diff --git a/src/database.cpp b/src/database.cpp
index 6f7c7166d077ed5b6b201617487b71848cdb4b47..32654565f820bffe9f6f112857623e27b8a9466e 100644
--- a/src/database.cpp
+++ b/src/database.cpp
@@ -31,6 +31,7 @@
 #include <QtSql/QSqlRecord>
 #include <QtCore/QStandardPaths>
 #include <QtCore/QVariant>
+#include <QDir>
 
 // Std
 #include <sstream>
@@ -59,6 +60,12 @@ Database::Database()
         throw std::runtime_error("QSQLITE not supported");
     }
 
+    {
+        // create data directory if not created yet
+        QDir dataDir;
+        dataDir.mkpath(QStandardPaths::writableLocation(QStandardPaths::DataLocation));
+    }
+
     // initalize the database.
     db_ = QSqlDatabase::addDatabase("QSQLITE");
 #ifdef ENABLE_TEST