diff options
author | Elrond <elrond+mediagoblin.org@samba-tng.org> | 2011-07-17 17:45:50 +0200 |
---|---|---|
committer | Elrond <elrond+mediagoblin.org@samba-tng.org> | 2011-07-17 17:45:50 +0200 |
commit | 3f4b5e4a4e318360e02b070b4aee2d0b2c01c3d9 (patch) | |
tree | 8ea1034ab61aa70c6c86d82e304afaca08b30791 /mediagoblin/init | |
parent | fa92d52fa5c57f6f76061d161b087f887e912344 (diff) | |
download | mediagoblin-3f4b5e4a4e318360e02b070b4aee2d0b2c01c3d9.tar.lz mediagoblin-3f4b5e4a4e318360e02b070b4aee2d0b2c01c3d9.tar.xz mediagoblin-3f4b5e4a4e318360e02b070b4aee2d0b2c01c3d9.zip |
Move application level setup of database to init/
Setting up the database now involves checking the
migrations status and setting up the globals.
Moved all of that into init/__init__.py:setup_database().
Diffstat (limited to 'mediagoblin/init')
-rw-r--r-- | mediagoblin/init/__init__.py | 29 |
1 files changed, 29 insertions, 0 deletions
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 |