From cbc5f9500cadc5f65eeebb1558cd9947655b1b3a Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 15 Aug 2014 16:23:15 -0500 Subject: [PATCH] Always remove the session when running check_db_up_to_date() This commit sponsored by Francois Marier. Thank you! --- mediagoblin/db/util.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/mediagoblin/db/util.py b/mediagoblin/db/util.py index aba9c59c..515fd6cd 100644 --- a/mediagoblin/db/util.py +++ b/mediagoblin/db/util.py @@ -76,11 +76,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__':