diff --git a/sqlmig b/sqlmig index 7f4a00d..246f5f6 100755 --- a/sqlmig +++ b/sqlmig @@ -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