sqlmig: ignorer les opérations de maintenance

This commit is contained in:
Jephté Clain 2018-07-21 10:19:23 +04:00
parent 305a1808bf
commit 6cfb62b92d
1 changed files with 14 additions and 8 deletions

22
sqlmig
View File

@ -39,6 +39,10 @@ base de données est interdite. De plus, tous les fichiers de mise à jour de la
forme *.devel.sql sont ignorés. Cela permet de fignoler une mise à jour sans forme *.devel.sql sont ignorés. Cela permet de fignoler une mise à jour sans
risquer de l'exécuter en production. risquer de l'exécuter en production.
Les fichiers de la forme maint-*.sql sont ignorés sauf s'ils sont explicitement
sélectionnés avec l'option -f ce qui permet de suivre les opérations de
maintenance faites sur la base de données.
USAGE USAGE
$scriptname [options] $scriptname [options]
@ -1198,18 +1202,20 @@ if [ -n "$updateone" ]; then
fi fi
function should_update() { function should_update() {
local update="$1" name local update="$1" name
setx name=basename "$update"
if [ -n "$updateone" ]; then if [ -n "$updateone" ]; then
# prendre tous les fichiers sélectionnés par -f
array_contains updatefiles "$update" array_contains updatefiles "$update"
return $? return $?
else elif [ "${name#maint-}" != "$name" ]; then
setx name=basename "$update" # ignorer les opérations de maintenance par défaut
if [ "$dbmode" != devel -a "${name%.devel.sql}" != "$name" ]; then return 1
# si on est en mode autre que devel, le nom ne doit pas se terminer elif [ "$dbmode" != devel -a "${name%.devel.sql}" != "$name" ]; then
# par .devel.sql # si on est en mode autre que devel, le nom ne doit pas se terminer
return 1 # par .devel.sql
fi return 1
return 0
fi fi
return 0
} }
# répertoire temporaire pour Oracle # répertoire temporaire pour Oracle