Преглед на файлове

Improvements to factory.py

oz123 преди 10 години
родител
ревизия
40cc1e1f3e
променени са 1 файла, в които са добавени 15 реда и са изтрити 7 реда
  1. 15 7
      pwman/data/factory.py

+ 15 - 7
pwman/data/factory.py

@@ -39,8 +39,7 @@ else:
 import os
 
 from pwman.data.database import DatabaseException, __DB_FORMAT__
-from pwman.data.drivers import sqlite
-from pwman.data.drivers import postgresql
+from pwman.data import drivers
 
 
 def check_db_version(dburi):
@@ -50,10 +49,13 @@ def check_db_version(dburi):
     dbtype = dburi.scheme
     filename = os.path.abspath(dburi.path)
     if dbtype == "sqlite":
-        ver = sqlite.SQLite.check_db_version(filename)
-    if dbtype == "postgresql":
-        #  ver = postgresql.PostgresqlDatabase.check_db_version(dburi)
-        ver = postgresql.PostgresqlDatabase.check_db_version(dburi.geturl())
+        ver = drivers.SQLite.check_db_version(filename)
+    elif dbtype == "postgresql":
+        ver = drivers.PostgresqlDatabase.check_db_version(dburi.geturl())
+    elif dbtype == "mysql":
+        ver = drivers.MySQLDatabase.check_db_version(dburi)
+    elif dbtype == "mongodb":
+        pass
 
     return float(ver.strip("\'"))
 
@@ -76,9 +78,15 @@ def createdb(dburi, version):
     elif dbtype == "mysql":  # pragma: no cover
         try:
             from pwman.data.drivers import mysql
-            db = mysql.MySQLDatabase()
+            db = mysql.MySQLDatabase(dburi)
         except ImportError:
             raise DatabaseException("python-mysqldb not installed")
+    elif dbtype == 'mongodb':
+        try:
+            from pwman.data.drivers import mongodb
+            db = mongodb.MongoDB(dburi)
+        except ImportError:
+            raise DatabaseException("pymongo not installed")
     else:
         raise DatabaseException("Unknown database type specified")
     return db