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().
This commit is contained in:
Elrond
2011-07-17 17:45:50 +02:00
parent fa92d52fa5
commit 3f4b5e4a4e
2 changed files with 31 additions and 20 deletions

View File

@@ -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