X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=mediagoblin%2Fdb%2Fopen.py;h=f4c38511a4cf2a48a5263ec5324622308ddde6c7;hb=758def22b82f32d5c399148bdc2b4a81b8e3c700;hp=e677ba12128340a624e93d61ccd6a820a4ab0bf0;hpb=817066506d846d06d0489dfb42b8200b86f61153;p=mediagoblin.git diff --git a/mediagoblin/db/open.py b/mediagoblin/db/open.py index e677ba12..f4c38511 100644 --- a/mediagoblin/db/open.py +++ b/mediagoblin/db/open.py @@ -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 @@ -14,42 +14,16 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -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