mirror of
https://github.com/MariaDB/server.git
synced 2025-01-15 19:42:28 +01:00
3622644836
Renames the upgrade state file, and ensures the old file is properly removed when `mariadb-upgrade` tool is executed. All new code of the whole pull request, including one or several files that are either new files or modified ones, are contributed under the BSD-new license. I am contributing on behalf of my employer Amazon Web Services, Inc.
49 lines
1.8 KiB
PHP
49 lines
1.8 KiB
PHP
--source include/have_innodb.inc
|
|
|
|
# ==== Usage ====
|
|
#
|
|
# [--let $old_version= 10.2]
|
|
# --source include/load_dump_and_upgrade.inc
|
|
|
|
# Dumps stored in std_data as mysql_database_<old_version>.dump
|
|
# were pre-created by running mysqldump for `mysql` database
|
|
# on a freshly boostrapped instance of the corresponding version.
|
|
# On 10.4 the local root was additionally given an empty password,
|
|
# to avoid using unix_socket.
|
|
|
|
# Backup the existing mysql schema, to restore it later
|
|
--exec $MYSQL_DUMP mysql > $MYSQL_TMP_DIR/mysql_database_backup
|
|
|
|
--echo #
|
|
--echo # Upgrade from version $old_version
|
|
--echo #
|
|
|
|
# Workaround for MDEV-22127 (can't import database dump created before 10.4)
|
|
# The most universal workaround suggested in the item is running
|
|
# DROP TABLE IF EXISTS `mysql`.`global_priv`;
|
|
# DROP VIEW IF EXISTS `mysql`.`user`;
|
|
# before the upgrade. For this test, it is better than creating the dumps
|
|
# with --add-drop-database, because
|
|
# a) it won't require re-creating the dump when the bug is fixed;
|
|
# b) it won't hide possible unrelated problems;
|
|
# c) add-drop-database doesn't work with logging into tables enabled (MDEV-4875 and more)
|
|
|
|
--exec $MYSQL -e "DROP TABLE IF EXISTS mysql.global_priv; DROP VIEW IF EXISTS mysql.user"
|
|
|
|
--echo # Loading dump of $old_version mysql schema
|
|
--exec $MYSQL mysql < $MYSQLTEST_VARDIR/std_data/mysql_database_$old_version.dump
|
|
|
|
--echo # Running mysql_upgrade
|
|
--exec $MYSQL_UPGRADE --verbose > $MYSQL_TMP_DIR/upgrade.log
|
|
|
|
--echo # Checking that mysql.user is accessible and returns some data
|
|
SELECT COUNT(*) > 0 AS `mysql.user has data` FROM mysql.user;
|
|
|
|
# Restore the backup of mysql schema
|
|
--exec $MYSQL mysql < $MYSQL_TMP_DIR/mysql_database_backup
|
|
|
|
--let $ddir= `select @@datadir`
|
|
|
|
# It will fail if the file doesn't exist, which is good,
|
|
# which is an extra check that it was written
|
|
--remove_file $ddir/mariadb_upgrade_info
|