diff options
author | Naios <naios-dev@live.de> | 2015-10-05 23:19:07 +0200 |
---|---|---|
committer | Naios <naios-dev@live.de> | 2015-10-05 23:29:34 +0200 |
commit | 4dd6070c795fa7b34a38af0bd8d19d55bbc62959 (patch) | |
tree | 8b5bd55fd4ca86bf707f75ea1cf4510fecff8884 /contrib | |
parent | 126b57acc665a918d3c72749cab4535878594591 (diff) |
Travis: Add check for update entries not listed in base dumps.
* Will mark the travis build as failed when the database updater is broken.
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/check_updates.sh | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/contrib/check_updates.sh b/contrib/check_updates.sh new file mode 100644 index 00000000000..97aa3dff7a8 --- /dev/null +++ b/contrib/check_updates.sh @@ -0,0 +1,44 @@ +#!/bin/sh +name=$1 +database=$2 + +echo "Database Updater check script:" +echo " Checking database '${name}' for missing filenames in tables..." +echo + +# Select all entries which are in the updates table +entries=$(mysql -uroot ${database} -e "SELECT name FROM updates" | grep ".sql") + +cd sql/updates/${name} + +error=0 +updates=0 + +for file in *.sql +do + # Check if the given update is in the `updates` table. + if echo "${entries}" | grep -q "^${file}"; then + # File is ok + updates=$((updates+1)) + else + # The update isn't listed in the updates table of the given database. + echo "- \"sql/updates/${file}\" is missing in table '${name}'.'updates'" + error=1 + fi +done + +if [ ${error} -ne 0 ] + then + echo + echo "Fatal error:" + echo " The Database Updater is broken for database '${name}" + echo " due to applied update which are missing in the '${name}'.'updates' table." + echo + echo "How to fix:" + echo " Insert the missing names of sql updates which were applied already to" + echo " the 'updates' table of the '${name}' base dump ('sql/base/${name}_database.sql')." + exit 1 + else + echo " Everything is ok, checked ${updates} updates." + exit 0 +fi |