Commit session after alembic updates have finished
authorBoris Bobrov <breton@cynicmansion.ru>
Sat, 1 Apr 2017 18:07:01 +0000 (21:07 +0300)
committerBoris Bobrov <breton@cynicmansion.ru>
Sat, 1 Apr 2017 18:26:35 +0000 (21:26 +0300)
After alembic updates we need to add foundations. The tables to add
foundations to are created as part of dbupdate process. For some reason
Alembic doesn't commit a session in the end. Because the session is not
commited, the tables do not really get created. And because of that,
foundations fail.

The solution is to commit the session after alembic updates.

(cherry picked from commit a5dae0dbc2dc7036a117589555e3a5b0bf10f596)

mediagoblin/gmg_commands/dbupdate.py

index bafe76bb01e96e543d322d3786ecbf1b406c2225..2700ccbc926b9438ecaf24f4405391ffe20dce2e 100644 (file)
@@ -133,7 +133,9 @@ def run_alembic_migrations(db, app_config, global_config):
     session = Session()
     cfg = build_alembic_config(global_config, None, session)
 
-    return command.upgrade(cfg, 'heads')
+    res = command.upgrade(cfg, 'heads')
+    session.commit()
+    return res
 
 
 def run_dbupdate(app_config, global_config):
@@ -146,7 +148,7 @@ def run_dbupdate(app_config, global_config):
     # Set up the database
     db = setup_connection_and_db_from_config(app_config, migrations=True)
 
-    # Do we have migrations 
+    # Do we have migrations
     should_run_sqam_migrations = db.engine.has_table("core__migrations") and \
                                  sqam_migrations_to_run(db, app_config,
                                                         global_config)