diff options
author | Julien Danjou <julien@danjou.info> | 2016-06-23 17:02:10 +0200 |
---|---|---|
committer | Julien Danjou <julien@danjou.info> | 2016-06-27 13:40:47 +0200 |
commit | 4bf0ae33ac312393fb8c465b3a8b26214957226b (patch) | |
tree | 9cc6d6ec47e0252f8e2136d7f34c5d3027441562 /ceilometer/event | |
parent | 7f603ce337047ff475ee78a3d6e24571d726cc7f (diff) | |
download | ceilometer-4bf0ae33ac312393fb8c465b3a8b26214957226b.tar.gz |
sqlalchemy: do not run upgrade on fresh install
This avoids creating the full table of the old Ceilometer alarms stuff on fresh
install, while upgrade will just ignore them.
Change-Id: I06f825d9a65da46fb7c30fd07c706ee018098b83
Diffstat (limited to 'ceilometer/event')
-rw-r--r-- | ceilometer/event/storage/impl_sqlalchemy.py | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/ceilometer/event/storage/impl_sqlalchemy.py b/ceilometer/event/storage/impl_sqlalchemy.py index b53e0f18..0a350188 100644 --- a/ceilometer/event/storage/impl_sqlalchemy.py +++ b/ceilometer/event/storage/impl_sqlalchemy.py @@ -142,7 +142,20 @@ class Connection(base.Connection): path = os.path.join(os.path.abspath(os.path.dirname(__file__)), '..', '..', 'storage', 'sqlalchemy', 'migrate_repo') - migration.db_sync(self._engine_facade.get_engine(), path) + engine = self._engine_facade.get_engine() + + from migrate import exceptions as migrate_exc + from migrate.versioning import api + from migrate.versioning import repository + + repo = repository.Repository(path) + try: + api.db_version(engine, repo) + except migrate_exc.DatabaseNotControlledError: + models.Base.metadata.create_all(engine) + api.version_control(engine, repo, repo.latest) + else: + migration.db_sync(engine, path) def clear(self): engine = self._engine_facade.get_engine() |