diff options
-rw-r--r-- | mediagoblin/app.py | 22 | ||||
-rw-r--r-- | mediagoblin/init/__init__.py | 29 |
2 files changed, 31 insertions, 20 deletions
diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 1c38f778..85c3c0c7 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -21,15 +21,10 @@ import routes from webob import Request, exc from mediagoblin import routing, util, storage -from mediagoblin.db.open import setup_connection_and_db_from_config -from mediagoblin.db.util import MigrationManager from mediagoblin.mg_globals import setup_globals from mediagoblin.init.celery import setup_celery_from_config from mediagoblin.init import get_jinja_loader, get_staticdirector, \ - setup_global_and_app_config, setup_workbench - -# This MUST be imported so as to set up the appropriate migrations! -from mediagoblin.db import migrations + setup_global_and_app_config, setup_workbench, setup_database class MediaGoblinApp(object): @@ -60,18 +55,7 @@ class MediaGoblinApp(object): ########################################## # Set up the database - self.connection, self.db = setup_connection_and_db_from_config( - app_config) - - # Init the migration number if necessary - migration_manager = MigrationManager(self.db) - migration_manager.install_migration_version_if_missing() - - # Tiny hack to warn user if our migration is out of date - if not migration_manager.database_at_latest_migration(): - print ( - "*WARNING:* Your migrations are out of date, " - "maybe run ./bin/gmg migrate?") + self.connection, self.db = setup_database() # Get the template environment self.template_loader = get_jinja_loader( @@ -108,8 +92,6 @@ class MediaGoblinApp(object): setup_globals( app=self, - db_connection=self.connection, - database=self.db, public_store=self.public_store, queue_store=self.queue_store) diff --git a/mediagoblin/init/__init__.py b/mediagoblin/init/__init__.py index 6320d21b..1e519cc9 100644 --- a/mediagoblin/init/__init__.py +++ b/mediagoblin/init/__init__.py @@ -20,6 +20,8 @@ from mediagoblin.init.config import ( read_mediagoblin_config, generate_validation_report) from mediagoblin import mg_globals from mediagoblin.mg_globals import setup_globals +from mediagoblin.db.open import setup_connection_and_db_from_config +from mediagoblin.db.util import MigrationManager from mediagoblin.workbench import WorkbenchManager @@ -42,6 +44,33 @@ def setup_global_and_app_config(config_path): return global_config, app_config + +def setup_database(): + app_config = mg_globals.app_config + + # This MUST be imported so as to set up the appropriate migrations! + from mediagoblin.db import migrations + + # Set up the database + connection, db = setup_connection_and_db_from_config(app_config) + + # Init the migration number if necessary + migration_manager = MigrationManager(db) + migration_manager.install_migration_version_if_missing() + + # Tiny hack to warn user if our migration is out of date + if not migration_manager.database_at_latest_migration(): + print ( + "*WARNING:* Your migrations are out of date, " + "maybe run ./bin/gmg migrate?") + + setup_globals( + db_connection = connection, + database = db) + + return connection, db + + def get_jinja_loader(user_template_path=None): """ Set up the Jinja template loaders, possibly allowing for user |