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:
parent
39fd817ab8
commit
b829595334
@ -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)
|
||||
|
@ -24,7 +24,7 @@ from mediagoblin.init.config import (
|
||||
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
|
||||
|
||||
@ -56,6 +56,9 @@ def setup_global_and_app_config(config_path):
|
||||
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)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user