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
##########################
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
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)
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__':