from mediagoblin.db.mongo.util import MigrationManager
+def load_models(app_config):
+ pass
+
+
def connect_database_from_config(app_config, use_pymongo=False):
"""
Connect to the main database, take config from app_config
if use_sql:
from mediagoblin.db.sql.open import \
- setup_connection_and_db_from_config, check_db_migrations_current
+ 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
+ setup_connection_and_db_from_config, check_db_migrations_current, \
+ load_models
from mediagoblin.db.sql.base import Base, Session
+_log = logging.getLogger(__name__)
+
class DatabaseMaster(object):
def __init__(self, engine):
Session.remove()
+def load_models(app_config):
+ import mediagoblin.db.sql.models
+
+ # TODO/Fix: This breaks celery
+ if False:
+ for media_type in app_config['media_types']:
+ _log.debug("Loading %s.models", media_type)
+ __import__(media_type + ".models")
+
+
def setup_connection_and_db_from_config(app_config):
engine = create_engine(app_config['sql_engine'])
# logging.getLogger('sqlalchemy.engine').setLevel(logging.INFO)
from mediagoblin import mg_globals
from mediagoblin.mg_globals import setup_globals
from mediagoblin.db.open import setup_connection_and_db_from_config, \
- check_db_migrations_current
+ check_db_migrations_current, load_models
from mediagoblin.workbench import WorkbenchManager
from mediagoblin.storage import storage_system_from_config
def setup_database():
app_config = mg_globals.app_config
+ # Load all models for media types (plugins, ...)
+ load_models(app_config)
+
# Set up the database
connection, db = setup_connection_and_db_from_config(app_config)