diff options
| author | Mark Goddard <mark@stackhpc.com> | 2019-06-17 10:49:21 +0100 |
|---|---|---|
| committer | Mark Goddard <mark@stackhpc.com> | 2019-06-17 11:07:01 +0100 |
| commit | 84a07102e2db92333ce416a520151f1a1856f162 (patch) | |
| tree | fa71c033352e6418d77763453048575610575239 /docker/nova | |
| parent | 498c57fcac31da9268918ec6c188fe2aae0c4906 (diff) | |
| download | kolla-84a07102e2db92333ce416a520151f1a1856f162.tar.gz kolla-84a07102e2db92333ce416a520151f1a1856f162.zip | |
Run nova api_db sync before db sync
Backport: Stein, Rocky
Since cells v2 was introduced, nova operators must run two commands to
migrate the database schemas of nova's databases - nova-manage api_db
sync and nova-manage db sync. It is necessary to run them in this order,
since the db sync may depend on schema changes made to the api
database in the api_db sync. Executing the db sync first may fail,
for example with the following seen in a Queens to Rocky upgrade:
nova-manage db sync
ERROR: Could not access cell0.
Has the nova_api database been created?
Has the nova_cell0 database been created?
Has "nova-manage api_db sync" been run?
Has "nova-manage cell_v2 map_cell0" been run?
Is [api_database]/connection set in nova.conf?
Is the cell0 database connection URL correct?
Error: (pymysql.err.InternalError) (1054, u"Unknown column
'cell_mappings.disabled' in 'field list'") [SQL: u'SELECT
cell_mappings.created_at AS cell_mappings_created_at,
cell_mappings.updated_at AS cell_mappings_updated_at,
cell_mappings.id AS cell_mappings_id, cell_mappings.uuid AS
cell_mappings_uuid, cell_mappings.name AS cell_mappings_name,
cell_mappings.transport_url AS cell_mappings_transport_url,
cell_mappings.database_connection AS
cell_mappings_database_connection, cell_mappings.disabled AS
cell_mappings_disabled \nFROM cell_mappings \nWHERE
cell_mappings.uuid = %(uuid_1)s \n LIMIT %(param_1)s'] [parameters:
{u'uuid_1': '00000000-0000-0000-0000-000000000000', u'param_1': 1}]
(Background on this error at: http://sqlalche.me/e/2j85)
Despite this error, the command actually exits zero, so kolla does not notice
the failure.
This change reorders these two commands to run the api_db sync before the db
sync.
Change-Id: I0514c02aaee1a413a7979c3a426e0484df839861
Closes-Bug: #1832860
Diffstat (limited to 'docker/nova')
| -rw-r--r-- | docker/nova/nova-api/extend_start.sh | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/docker/nova/nova-api/extend_start.sh b/docker/nova/nova-api/extend_start.sh index 7d9684bcc..3d958253e 100644 --- a/docker/nova/nova-api/extend_start.sh +++ b/docker/nova/nova-api/extend_start.sh @@ -3,15 +3,15 @@ # Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases # of the KOLLA_BOOTSTRAP variable being set, including empty. if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then - nova-manage db sync nova-manage api_db sync + nova-manage db sync nova-manage db online_data_migrations exit 0 fi if [[ "${!KOLLA_UPGRADE[@]}" ]]; then - nova-manage db sync nova-manage api_db sync + nova-manage db sync exit 0 fi |
