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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user