summaryrefslogtreecommitdiff
path: root/ceilometer/event
diff options
context:
space:
mode:
authorJulien Danjou <julien@danjou.info>2016-06-23 17:02:10 +0200
committerJulien Danjou <julien@danjou.info>2016-06-27 13:40:47 +0200
commit4bf0ae33ac312393fb8c465b3a8b26214957226b (patch)
tree9cc6d6ec47e0252f8e2136d7f34c5d3027441562 /ceilometer/event
parent7f603ce337047ff475ee78a3d6e24571d726cc7f (diff)
downloadceilometer-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.py15
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()