Establish an initial version of the database
Adapted from Nova commit ee2f6f1bed21a5ef92d84634cd4e949062073d62. This will allow us to squash database migrations. Change-Id: Icede692e4cc866cd27bae3aaa19c1f2466b989d0
This commit is contained in:
parent
6d5007e732
commit
f6a024be81
|
@ -20,6 +20,8 @@ from heat.db import utils
|
|||
IMPL = utils.LazyPluggable('db_backend',
|
||||
sqlalchemy='heat.db.sqlalchemy.migration')
|
||||
|
||||
INIT_VERSION = 0
|
||||
|
||||
|
||||
def db_sync(version=None):
|
||||
"""Migrate the database to `version` or the most recent version."""
|
||||
|
|
|
@ -15,7 +15,9 @@
|
|||
import distutils.version as dist_version
|
||||
import os
|
||||
import sys
|
||||
|
||||
from heat.db.sqlalchemy.session import get_engine
|
||||
from heat.db import migration
|
||||
|
||||
import sqlalchemy
|
||||
import migrate
|
||||
|
@ -81,20 +83,18 @@ def db_version():
|
|||
repository = _find_migrate_repo()
|
||||
try:
|
||||
return versioning_api.db_version(get_engine(), repository)
|
||||
except versioning_exceptions.DatabaseNotControlledError:
|
||||
# If we aren't version controlled we may already have the database
|
||||
# in the state from before we started version control, check for that
|
||||
# and set up version_control appropriately
|
||||
except versioning_exceptions.DatabaseNotControlledError as exc:
|
||||
# If we aren't version controlled there may be an existing,
|
||||
# non-version controlled database present.
|
||||
meta = sqlalchemy.MetaData()
|
||||
engine = get_engine()
|
||||
meta.reflect(bind=engine)
|
||||
try:
|
||||
for table in ('stack', 'resource', 'event',
|
||||
'parsed_template', 'raw_template'):
|
||||
assert table in meta.tables
|
||||
return db_version_control(1)
|
||||
except AssertionError:
|
||||
return db_version_control(0)
|
||||
tables = meta.tables
|
||||
if len(tables):
|
||||
raise exc
|
||||
|
||||
db_version_control(migration.INIT_VERSION)
|
||||
return versioning_api.db_version(get_engine(), repository)
|
||||
|
||||
|
||||
def db_version_control(version=None):
|
||||
|
|
Loading…
Reference in New Issue