mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-26 20:02:25 +01:00
Travis: Add check for update entries not listed in base dumps.
* Will mark the travis build as failed when the database updater is broken.
This commit is contained in:
@@ -19,12 +19,15 @@ install:
|
||||
- mkdir bin
|
||||
- cd bin
|
||||
- cmake ../ -DWITH_WARNINGS=1 -DWITH_COREDEBUG=0 -DUSE_COREPCH=1 -DUSE_SCRIPTPCH=1 -DTOOLS=1 -DSCRIPTS=1 -DSERVERS=1 -DNOJEM=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-Werror" -DCMAKE_CXX_FLAGS="-Werror"
|
||||
- cd ..
|
||||
- sudo chmod +x contrib/check_updates.sh
|
||||
|
||||
script:
|
||||
- cd ..
|
||||
- mysql -uroot < sql/create/create_mysql.sql
|
||||
- mysql -utrinity -ptrinity auth < sql/base/auth_database.sql
|
||||
- ./contrib/check_updates.sh auth auth
|
||||
- mysql -utrinity -ptrinity characters < sql/base/characters_database.sql
|
||||
- ./contrib/check_updates.sh characters characters
|
||||
- mysql -utrinity -ptrinity world < sql/base/dev/world_database.sql
|
||||
- cat sql/updates/world/*.sql | mysql -utrinity -ptrinity world
|
||||
- mysql -uroot < sql/create/drop_mysql.sql
|
||||
|
||||
44
contrib/check_updates.sh
Normal file
44
contrib/check_updates.sh
Normal file
@@ -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
|
||||
Reference in New Issue
Block a user