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
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
$scriptname [options]
@ -1198,18 +1202,20 @@ if [ -n "$updateone" ]; then
fi
function should_update() {
local update="$1" name
setx name=basename "$update"
if [ -n "$updateone" ]; then
# prendre tous les fichiers sélectionnés par -f
array_contains updatefiles "$update"
return $?
else
setx name=basename "$update"
if [ "$dbmode" != devel -a "${name%.devel.sql}" != "$name" ]; then
# si on est en mode autre que devel, le nom ne doit pas se terminer
# par .devel.sql
return 1
fi
return 0
elif [ "${name#maint-}" != "$name" ]; then
# ignorer les opérations de maintenance par défaut
return 1
elif [ "$dbmode" != devel -a "${name%.devel.sql}" != "$name" ]; then
# si on est en mode autre que devel, le nom ne doit pas se terminer
# par .devel.sql
return 1
fi
return 0
}
# répertoire temporaire pour Oracle