diff --git a/aodh/storage/impl_sqlalchemy.py b/aodh/storage/impl_sqlalchemy.py index d70db0778..461596c1b 100644 --- a/aodh/storage/impl_sqlalchemy.py +++ b/aodh/storage/impl_sqlalchemy.py @@ -156,17 +156,19 @@ class Connection(base.Connection): def upgrade(self, nocreate=False): cfg = self._get_alembic_config() cfg.conf = self.conf - if nocreate: - command.upgrade(cfg, "head") - else: - engine = enginefacade.writer.get_engine() - ctxt = migration.MigrationContext.configure(engine.connect()) - current_version = ctxt.get_current_revision() - if current_version is None: - models.Base.metadata.create_all(engine, checkfirst=False) - command.stamp(cfg, "head") - else: + engine = enginefacade.writer.get_engine() + with engine.begin() as connection: + cfg.attributres['connection'] = connection + if nocreate: command.upgrade(cfg, "head") + else: + ctxt = migration.MigrationContext.configure(connection) + current_version = ctxt.get_current_revision() + if current_version is None: + models.Base.metadata.create_all(engine, checkfirst=False) + command.stamp(cfg, "head") + else: + command.upgrade(cfg, "head") def clear(self): engine = enginefacade.writer.get_engine()