X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=mediagoblin%2Fdb%2Fsql%2Fopen.py;h=ce5f06042f8d8f33c95763edf41ebd394bca448f;hb=c4869eff408116d9082c6b0536980d3aa71c1172;hp=1bfc553825acf8c73e8b3a65626ca7f8d4c2b6b3;hpb=63352aaf70d97a37b6277fab0f9b957d34dcb9df;p=mediagoblin.git diff --git a/mediagoblin/db/sql/open.py b/mediagoblin/db/sql/open.py index 1bfc5538..ce5f0604 100644 --- a/mediagoblin/db/sql/open.py +++ b/mediagoblin/db/sql/open.py @@ -16,9 +16,11 @@ from sqlalchemy import create_engine +import logging -from mediagoblin.db.sql.base import Session -from mediagoblin.db.sql.models import Base +from mediagoblin.db.sql.base import Base, Session + +_log = logging.getLogger(__name__) class DatabaseMaster(object): @@ -35,12 +37,29 @@ class DatabaseMaster(object): Session.add(obj) Session.flush() + def check_session_clean(self): + for dummy in Session(): + _log.warn("STRANGE: There are elements in the sql session. " + "Please report this and help us track this down.") + break + def reset_after_request(self): + Session.rollback() Session.remove() +def load_models(app_config): + import mediagoblin.db.sql.models + + if True: + for media_type in app_config['media_types']: + _log.debug("Loading %s.models", media_type) + __import__(media_type + ".models") + + def setup_connection_and_db_from_config(app_config): - engine = create_engine(app_config['sql_engine'], echo=True) + engine = create_engine(app_config['sql_engine']) + # logging.getLogger('sqlalchemy.engine').setLevel(logging.INFO) Session.configure(bind=engine) return "dummy conn", DatabaseMaster(engine)