aboutsummaryrefslogtreecommitdiff
path: root/docker
diff options
context:
space:
mode:
authorMark Goddard <mark@stackhpc.com>2019-06-17 10:49:21 +0100
committerMark Goddard <mark@stackhpc.com>2019-06-17 11:07:01 +0100
commit84a07102e2db92333ce416a520151f1a1856f162 (patch)
treefa71c033352e6418d77763453048575610575239 /docker
parent498c57fcac31da9268918ec6c188fe2aae0c4906 (diff)
downloadkolla-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')
-rw-r--r--docker/nova/nova-api/extend_start.sh4
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