Merge branch 'master' of gitorious.org:mediagoblin/mediagoblin
[mediagoblin.git] / mediagoblin / db / open.py
index e677ba12128340a624e93d61ccd6a820a4ab0bf0..f4c38511a4cf2a48a5263ec5324622308ddde6c7 100644 (file)
@@ -1,5 +1,5 @@
 # GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 MediaGoblin contributors.  See AUTHORS.
+# Copyright (C) 2011, 2012 MediaGoblin contributors.  See AUTHORS.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU Affero General Public License as published by
 # You should have received a copy of the GNU Affero General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-import pymongo
-import mongokit
-from paste.deploy.converters import asint
-from mediagoblin.db import models
-
-
-def connect_database_from_config(app_config, use_pymongo=False):
-    """
-    Connect to the main database, take config from app_config
-
-    Optionally use pymongo instead of mongokit for the connection.
-    """
-    port = app_config.get('db_port')
-    if port:
-        port = asint(port)
-
-    if use_pymongo:
-        connection = pymongo.Connection(
-            app_config.get('db_host'), port)
-    else:
-        connection = mongokit.Connection(
-            app_config.get('db_host'), port)
-    return connection
-
-
-def setup_connection_and_db_from_config(app_config, use_pymongo=False):
-    """
-    Setup connection and database from config.
-
-    Optionally use pymongo instead of mongokit.
-    """
-    connection = connect_database_from_config(app_config, use_pymongo)
-    database_path = app_config['db_name']
-    db = connection[database_path]
-
-    if not use_pymongo:
-        models.register_models(connection)
-
-    return (connection, db)
+try:
+    from mediagoblin.db.sql_switch import use_sql
+except ImportError:
+    use_sql = False
+
+if use_sql:
+    from mediagoblin.db.sql.open import \
+        setup_connection_and_db_from_config, check_db_migrations_current, \
+        load_models
+else:
+    from mediagoblin.db.mongo.open import \
+        setup_connection_and_db_from_config, check_db_migrations_current, \
+        load_models