Create load_models().

So all models are ready when connecting to the db and so
our "db" object has all models listed on it, create a
function to load all models from the media_types, etc. Call
it in setup_database()

Problem: This gives celery warnings, because celery is
imported before being setup properly. No idea how to fix
this now. So media-type loading is excluded from
load_models for now.
This commit is contained in:
Elrond
2012-03-20 12:39:15 +01:00
parent 39fd817ab8
commit b829595334
4 changed files with 24 additions and 3 deletions

View File

@@ -21,6 +21,10 @@ from mediagoblin.db.mongo import models
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

View File

@@ -21,7 +21,9 @@ except ImportError:
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

View File

@@ -20,6 +20,8 @@ import logging
from mediagoblin.db.sql.base import Base, Session
_log = logging.getLogger(__name__)
class DatabaseMaster(object):
def __init__(self, engine):
@@ -40,6 +42,16 @@ class DatabaseMaster(object):
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)