724d65804d
When a tripleo major upgrade or FFU causes an update or mariadb
to a new major version (e.g. 10.1 -> 10.3), some internal DB
tables must be upgraded (myisam tables), and sometimes the
existing user tables may be migrated to new mariadb defaults.
Move the db-specific upgrade steps into a dedicated script and
make sure that it is called at the right time while upgrading
the undercloud and/or the overcloud.
Closes-Bug: #1913438
Change-Id: I92353622994b28c895d95bdcbe348a73b6c6bb99
(cherry picked from commit 712cfcc71b
)
16 lines
706 B
Bash
Executable File
16 lines
706 B
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
# Wait until we know the mysql server is up and responding
|
|
timeout ${DB_MAX_TIMEOUT:-60} /bin/bash -c 'until mysqladmin -uroot ping 2>/dev/null; do sleep 1; done'
|
|
|
|
# After an upgrade, make sure that the running mysql had a chance to
|
|
# update its data table on disk.
|
|
mysql_upgrade
|
|
|
|
# Upgrade to 10.3: the default table row format changed from COMPACT
|
|
# to DYNAMIC, so upgrade the existing tables.
|
|
compact_tables=$(mysql -se 'SELECT CONCAT("`",TABLE_SCHEMA,"`.`",TABLE_NAME,"`") FROM information_schema.tables WHERE ENGINE = "InnoDB" and ROW_FORMAT = "Compact";');
|
|
for i in $compact_tables; do echo converting row format of table $i; mysql -e "ALTER TABLE $i ROW_FORMAT=DYNAMIC;"; done;
|