Change `uploader` to `actor`
[mediagoblin.git] / mediagoblin / db / util.py
index aba9c59c79f06ef873f569d4e7aaf74cb6d1c790..57e6b9427303b1212f1b224bdad8db7d451def0d 100644 (file)
 import sys
 
 from mediagoblin import mg_globals as mgg
-from mediagoblin.db.base import Session
 from mediagoblin.db.models import MediaEntry, Tag, MediaTag, Collection
 from mediagoblin.gmg_commands.dbupdate import gather_database_data
 
+from mediagoblin.tools.transition import DISABLE_GLOBALS
+
+if not DISABLE_GLOBALS:
+    from mediagoblin.db.base import Session
+
 ##########################
 # Random utility functions
 ##########################
@@ -33,7 +37,7 @@ def atomic_update(table, query_dict, update_values):
 
 
 def check_media_slug_used(uploader_id, slug, ignore_m_id):
-    query = MediaEntry.query.filter_by(uploader=uploader_id, slug=slug)
+    query = MediaEntry.query.filter_by(actor=uploader_id, slug=slug)
     if ignore_m_id is not None:
         query = query.filter(MediaEntry.id != ignore_m_id)
     does_exist = query.first() is not None
@@ -63,7 +67,7 @@ def clean_orphan_tags(commit=True):
 
 
 def check_collection_slug_used(creator_id, slug, ignore_c_id):
-    filt = (Collection.creator == creator_id) \
+    filt = (Collection.actor == creator_id) \
         & (Collection.slug == slug)
     if ignore_c_id is not None:
         filt = filt & (Collection.id != ignore_c_id)
@@ -76,11 +80,16 @@ def check_db_up_to_date():
     dbdatas = gather_database_data(mgg.global_config.get('plugins', {}).keys())
 
     for dbdata in dbdatas:
-        migration_manager = dbdata.make_migration_manager(Session())
-        if migration_manager.database_current_migration is None or \
-                migration_manager.migrations_to_run():
-            sys.exit("Your database is not up to date. Please run "
-                     "'gmg dbupdate' before starting MediaGoblin.")
+        session = Session()
+        try:
+            migration_manager = dbdata.make_migration_manager(session)
+            if migration_manager.database_current_migration is None or \
+                    migration_manager.migrations_to_run():
+                sys.exit("Your database is not up to date. Please run "
+                         "'gmg dbupdate' before starting MediaGoblin.")
+        finally:
+            Session.rollback()
+            Session.remove()
 
 
 if __name__ == '__main__':