aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/db/migration_tools.py
diff options
context:
space:
mode:
authorJessica Tallon <tsyesika@tsyesika.se>2016-01-20 09:09:42 +0000
committerJessica Tallon <tsyesika@tsyesika.se>2016-01-20 09:09:42 +0000
commit4c77f3d56396a78f2708e59b9cb6c8f150b39b6d (patch)
tree64e3d57ab1c0b63a0413c395c61930d7ee794dfe /mediagoblin/db/migration_tools.py
parent8de5a9319ae7553169fb51d368c5366d6f54fe14 (diff)
downloadmediagoblin-4c77f3d56396a78f2708e59b9cb6c8f150b39b6d.tar.lz
mediagoblin-4c77f3d56396a78f2708e59b9cb6c8f150b39b6d.tar.xz
mediagoblin-4c77f3d56396a78f2708e59b9cb6c8f150b39b6d.zip
Fix #5398 and #5395 - Fix tests failing due to problem creating connection for alembic
For some reason the alembic connection wasn't seeing any tables that existed however the existing connection works well and we shouldn't be creating a brand new one when we have one ready to use. I've used a little bit of a hack due to our old version of alembic. After 0.7.5 of alembic it offers a `Config.attributes` dictionary which is designed to allow you to pass your connection/engine/whatever to the env.py config script so you're not required to create new ones. As we're on an older version I just create a dictionary with the same name and use it as otherwise documented. It seems this is the suggested fix for #5395 and it fixes #5398 too.
Diffstat (limited to 'mediagoblin/db/migration_tools.py')
-rw-r--r--mediagoblin/db/migration_tools.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/mediagoblin/db/migration_tools.py b/mediagoblin/db/migration_tools.py
index e34685f5..b3fb8f41 100644
--- a/mediagoblin/db/migration_tools.py
+++ b/mediagoblin/db/migration_tools.py
@@ -40,10 +40,17 @@ class AlembicMigrationManager(object):
def __init__(self, session):
root_dir = os.path.abspath(os.path.dirname(os.path.dirname(
os.path.dirname(__file__))))
+
+ self.session = session
+ self.engine = self.session.get_bind()
alembic_cfg_path = os.path.join(root_dir, 'alembic.ini')
self.alembic_cfg = Config(alembic_cfg_path)
- self.alembic_cfg.set_main_option("sqlalchemy.url", str(session.get_bind().url))
- self.session = session
+
+ # TODO: After 0.7.5 alembic has Config.attributes already made, once
+ # we're able to update, please remove this hack!
+ self.alembic_cfg.attributes = {}
+ self.alembic_cfg.attributes["session"] = self.session
+ self.alembic_cfg.set_main_option("qlalchemy.url", str(self.engine.url))
def get_current_revision(self):
context = MigrationContext.configure(self.session.bind)