diff options
author | Jessica Tallon <tsyesika@tsyesika.se> | 2016-01-20 09:09:42 +0000 |
---|---|---|
committer | Jessica Tallon <tsyesika@tsyesika.se> | 2016-01-20 09:09:42 +0000 |
commit | 4c77f3d56396a78f2708e59b9cb6c8f150b39b6d (patch) | |
tree | 64e3d57ab1c0b63a0413c395c61930d7ee794dfe /mediagoblin/db/migration_tools.py | |
parent | 8de5a9319ae7553169fb51d368c5366d6f54fe14 (diff) | |
download | mediagoblin-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.py | 11 |
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) |