Set up request.db / app.db(_manager) depending on DISABLE_GLOBALS

This commit is contained in:
Christopher Allan Webber 2014-11-30 14:50:50 -06:00
parent 2026752120
commit c060353e35

View File

@ -106,7 +106,10 @@ class MediaGoblinApp(object):
setup_plugins() setup_plugins()
# Set up the database # Set up the database
self.db = setup_database(app_config['run_migrations']) if DISABLE_GLOBALS:
self.db_manager = setup_database(app_config['run_migrations'])
else:
self.db = setup_database(app_config['run_migrations'])
# Quit app if need to run dbupdate # Quit app if need to run dbupdate
## NOTE: This is currently commented out due to session errors.. ## NOTE: This is currently commented out due to session errors..
@ -191,7 +194,9 @@ class MediaGoblinApp(object):
# Also attach a few utilities from request.app for convenience? # Also attach a few utilities from request.app for convenience?
ctx.app = self ctx.app = self
ctx.db = self.db if not DISABLE_GLOBALS:
ctx.db = self.db
ctx.staticdirect = self.staticdirector ctx.staticdirect = self.staticdirector
# Do special things if this is a request # Do special things if this is a request
@ -300,7 +305,11 @@ class MediaGoblinApp(object):
# get the Http response from the controller # get the Http response from the controller
try: try:
response = controller(request) if DISABLE_GLOBALS:
with self.db_manager.session_scope() as request.db:
response = controller(request)
else:
response = controller(request)
except HTTPException as e: except HTTPException as e:
response = render_http_exception( response = render_http_exception(
request, e, e.get_description(environ)) request, e, e.get_description(environ))
@ -326,9 +335,10 @@ class MediaGoblinApp(object):
try: try:
return self.call_backend(environ, start_response) return self.call_backend(environ, start_response)
finally: finally:
# Reset the sql session, so that the next request if not DISABLE_GLOBALS:
# gets a fresh session # Reset the sql session, so that the next request
self.db.reset_after_request() # gets a fresh session
self.db.reset_after_request()
def paste_app_factory(global_config, **app_config): def paste_app_factory(global_config, **app_config):