diff options
author | Mehdi Abaakouk <sileht@sileht.net> | 2016-12-05 08:35:51 +0100 |
---|---|---|
committer | Mehdi Abaakouk <sileht@sileht.net> | 2016-12-05 11:46:17 +0100 |
commit | e8e2421f8bc7ae861061bc5cef89934e0bccfdaf (patch) | |
tree | d1329101842d30c574e519c6d2d72287a50c0817 | |
parent | 76414af2298d127fef73f766458023b4c20d81ef (diff) | |
download | oslo-db-e8e2421f8bc7ae861061bc5cef89934e0bccfdaf.tar.gz |
migration: don't assume the mixin use provision4.16.0
In 2ad571c8d7a7e1d8d18f7c5e97c564509fd34816 we have changed the backend
used to cleanup the ModelsMigrationsSync by the one from
oslo_db.sqlalchemy.provision.
But in ModelsMigrationsSync, nothing uses the provisioning system. The
engine can be created outside oslo.db. And oslo.db must must not assume
it have been created by the oslo_db.sqlalchemy.provision module.
For example, 2ad571c8d7a7e1d8d18f7c5e97c564509fd34816 have broken the
Gnocchi models migration test that creates the engine itself.
This change builds a new backend to cleanup all database objects.
Change-Id: Ie8c454528ce3aa816c04fbb4beb69f4b5ec57e9c
Closes-bug: #1647280
-rw-r--r-- | oslo_db/sqlalchemy/test_migrations.py | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/oslo_db/sqlalchemy/test_migrations.py b/oslo_db/sqlalchemy/test_migrations.py index 549654c..56beddb 100644 --- a/oslo_db/sqlalchemy/test_migrations.py +++ b/oslo_db/sqlalchemy/test_migrations.py @@ -595,11 +595,10 @@ class ModelsMigrationsSync(object): self.skipTest('sqlalchemy>=0.8.4 and alembic>=0.6.3 are required' ' for running of this test: %s' % e) - # drop all tables after a test run - backend = provision.Backend.backend_for_database_type( - self.get_engine().name) - self.addCleanup(functools.partial(backend.drop_all_objects, - self.get_engine())) + # drop all objects after a test run + engine = self.get_engine() + backend = provision.Backend(engine.name, engine.url) + self.addCleanup(functools.partial(backend.drop_all_objects, engine)) # run migration scripts self.db_sync(self.get_engine()) |