From 486bd5f06917068929899f6a738c145c02e3e32b Mon Sep 17 00:00:00 2001 From: Rudolf Byker Date: Wed, 8 Jan 2020 11:20:02 +0200 Subject: [PATCH] Bug 10517: Use `DROP USER IF EXISTS` and remove ` || true`. When restoring a Koha instance, and the database user does not exist, an error is shown, although it is prevented from stopping the script by ` || true`. This patch removes the ` || true` guard, and rather uses `DROP USER IF EXISTS` which does exactly what one would expect, without confusing error messages, whether the user existed or not. To test: 1) Assume your Koha instance is called `asdf`. 1) Export the Koha instance using `koha-dump`. 2) Remove the instance completely using `koha-remove`. 3) Import it again using `koha-restore`. 4) No error should be shown, and the import should work. There was NO user to drop, therefore `DROP USER IF EXISTS` did nothing. 5) A database user called `koha_asdf` should exist, and have all privileges on the database of the same name. 6) Remove the instance again using `koha-remove`. 7) Now create a database user in MySQL called `koha_instance` where instance is the name of your dumped koha instance. 8) Import your koha instance again using `koha-restore`. 9) Again, no error should be shown, and the import should work. There WAS a user to drop, therefore `DROP USER IF EXISTS` dropped the user before creating a new one. 10) Again, a database user called `koha_asdf` should exist, and have all privileges on the database of the same name. Sponsored-by: Reformational Study Centre --- debian/scripts/koha-restore | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/debian/scripts/koha-restore b/debian/scripts/koha-restore index e8ec053ee0..7c68d65c29 100755 --- a/debian/scripts/koha-restore +++ b/debian/scripts/koha-restore @@ -72,10 +72,8 @@ mysqldb="koha_$name" mysqluser="koha_$name" mysqlpwd="$( xmlstarlet sel -t -v 'yazgfs/config/pass' /etc/koha/sites/$name/koha-conf.xml )" zcat "$sqldump" | mysql --defaults-extra-file=/etc/mysql/koha-common.cnf -mysql --defaults-extra-file=/etc/mysql/koha-common.cnf <