FIXED SQL MIGRATION #2
[mediagoblin.git] / mediagoblin / db / sql / open.py
index 1bfc553825acf8c73e8b3a65626ca7f8d4c2b6b3..ce5f06042f8d8f33c95763edf41ebd394bca448f 100644 (file)
 
 
 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)