aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/init
diff options
context:
space:
mode:
authorElrond <elrond+mediagoblin.org@samba-tng.org>2011-07-17 17:45:50 +0200
committerElrond <elrond+mediagoblin.org@samba-tng.org>2011-07-17 17:45:50 +0200
commit3f4b5e4a4e318360e02b070b4aee2d0b2c01c3d9 (patch)
tree8ea1034ab61aa70c6c86d82e304afaca08b30791 /mediagoblin/init
parentfa92d52fa5c57f6f76061d161b087f887e912344 (diff)
downloadmediagoblin-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__.py29
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