sqlmig: mode fake pour afficher les opérations qui doivent être faites
This commit is contained in:
parent
e0d6910271
commit
6a6b2a5f32
42
sqlmig
42
sqlmig
|
@ -100,7 +100,7 @@ OPTIONS
|
||||||
répertoire courant vers le répertoire DESTUPDATEDIR
|
répertoire courant vers le répertoire DESTUPDATEDIR
|
||||||
-u, --update
|
-u, --update
|
||||||
Mettre à jour la base de données. C'est l'option par défaut
|
Mettre à jour la base de données. C'est l'option par défaut
|
||||||
-b, --updatedir UPDATEDIR
|
-t, --updatedir UPDATEDIR
|
||||||
Spécifier le répertoire qui contient les répertoires de mises à jour
|
Spécifier le répertoire qui contient les répertoires de mises à jour
|
||||||
pour chaque base de données.
|
pour chaque base de données.
|
||||||
-d, --databasedir DATABASEDIR
|
-d, --databasedir DATABASEDIR
|
||||||
|
@ -109,12 +109,14 @@ OPTIONS
|
||||||
déterminé à partir du nom du répertoire. Si cette option n'est pas
|
déterminé à partir du nom du répertoire. Si cette option n'est pas
|
||||||
spécifiée, tous les répertoires de base de données de UPDATEDIR sont
|
spécifiée, tous les répertoires de base de données de UPDATEDIR sont
|
||||||
considérés.
|
considérés.
|
||||||
-n, --database DATABASE
|
-b, --database DATABASE
|
||||||
Spécifier le nom de la base de données. En principe le nom de la base de
|
Spécifier le nom de la base de données. En principe le nom de la base de
|
||||||
données est calculé à partir du nom du répertoire DATABASEDIR. Cette
|
données est calculé à partir du nom du répertoire DATABASEDIR. Cette
|
||||||
option peut être utilisée par exemple pour créer une base de test à
|
option peut être utilisée par exemple pour créer une base de test à
|
||||||
partir des définitions d'une base de prod.
|
partir des définitions d'une base de prod.
|
||||||
|
|
||||||
|
-n, --fake
|
||||||
|
Ne pas faire les mises à jour, afficher simplement ce qui serait fait
|
||||||
--force, --continue-on-error
|
--force, --continue-on-error
|
||||||
Ne pas s'arrêter en cas d'erreur de mise à jour
|
Ne pas s'arrêter en cas d'erreur de mise à jour
|
||||||
--no-data-csv
|
--no-data-csv
|
||||||
|
@ -282,7 +284,11 @@ function mysql_admin_qe() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
function mysql_tbconf() {
|
function mysql_tbconf() {
|
||||||
|
[ -n "$fake" ] && return
|
||||||
|
|
||||||
|
# s'assurer que la table des mises à jour existe
|
||||||
local dbname="$1" tb="$2"
|
local dbname="$1" tb="$2"
|
||||||
|
|
||||||
if [ -z "$dbname" ]; then
|
if [ -z "$dbname" ]; then
|
||||||
# admin
|
# admin
|
||||||
setx dbname=get_mysql_admindb
|
setx dbname=get_mysql_admindb
|
||||||
|
@ -420,20 +426,28 @@ function mysql_admin_update() {
|
||||||
MYSQL_ADMIN_CONF_DONE=1
|
MYSQL_ADMIN_CONF_DONE=1
|
||||||
mysql_tbconf
|
mysql_tbconf
|
||||||
fi
|
fi
|
||||||
setx done=mysql_get_done "$name" || die
|
if ! setx done=mysql_get_done "$name"; then
|
||||||
|
[ -n "$fake" ] || die
|
||||||
|
fi
|
||||||
[ -n "$done" ] && return
|
[ -n "$done" ] && return
|
||||||
|
|
||||||
estep "$name"
|
estep "$name"
|
||||||
|
[ -n "$fake" ] && return
|
||||||
|
|
||||||
mysql_before_update || die
|
mysql_before_update || die
|
||||||
cat "$update" | mysql_admin_ve || abort_on_error
|
cat "$update" | mysql_admin_ve || abort_on_error
|
||||||
mysql_after_update || die
|
mysql_after_update || die
|
||||||
}
|
}
|
||||||
function mysql_user_update() {
|
function mysql_user_update() {
|
||||||
local name="$1" update="$2" dbname="$3" done
|
local name="$1" update="$2" dbname="$3" done
|
||||||
setx done=mysql_get_done "$name" "$dbname" || die
|
if ! setx done=mysql_get_done "$name" "$dbname"; then
|
||||||
|
[ -n "$fake" ] || die
|
||||||
|
fi
|
||||||
[ -n "$done" ] && return
|
[ -n "$done" ] && return
|
||||||
|
|
||||||
estep "$name"
|
estep "$name"
|
||||||
|
[ -n "$fake" ] && return
|
||||||
|
|
||||||
mysql_before_update "$dbname" || die
|
mysql_before_update "$dbname" || die
|
||||||
cat "$update" | mysql_user_ve || abort_on_error
|
cat "$update" | mysql_user_ve || abort_on_error
|
||||||
mysql_after_update "$dbname" || die
|
mysql_after_update "$dbname" || die
|
||||||
|
@ -558,6 +572,8 @@ function oracle_user_have_table() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function oracle_tbconf() {
|
function oracle_tbconf() {
|
||||||
|
[ -n "$fake" ] && return
|
||||||
|
|
||||||
# s'assurer que la table des mises à jour existe
|
# s'assurer que la table des mises à jour existe
|
||||||
local dbname="$1" tb="$2"
|
local dbname="$1" tb="$2"
|
||||||
if [ -z "$dbname" ]; then
|
if [ -z "$dbname" ]; then
|
||||||
|
@ -732,6 +748,8 @@ function oracle_admin_update() {
|
||||||
[ -n "$done" ] && return
|
[ -n "$done" ] && return
|
||||||
|
|
||||||
estep "$name"
|
estep "$name"
|
||||||
|
[ -n "$fake" ] && return
|
||||||
|
|
||||||
oracle_before_update || die
|
oracle_before_update || die
|
||||||
cat "$update" | oracle_admin_ve || abort_on_error
|
cat "$update" | oracle_admin_ve || abort_on_error
|
||||||
oracle_after_update || die
|
oracle_after_update || die
|
||||||
|
@ -742,6 +760,8 @@ function oracle_user_update() {
|
||||||
[ -n "$done" ] && return
|
[ -n "$done" ] && return
|
||||||
|
|
||||||
estep "$name"
|
estep "$name"
|
||||||
|
[ -n "$fake" ] && return
|
||||||
|
|
||||||
oracle_before_update "$dbname" || die
|
oracle_before_update "$dbname" || die
|
||||||
cat "$update" | oracle_user_ve || abort_on_error
|
cat "$update" | oracle_user_ve || abort_on_error
|
||||||
oracle_after_update "$dbname" || die
|
oracle_after_update "$dbname" || die
|
||||||
|
@ -799,9 +819,10 @@ args=(
|
||||||
-0,--init action=init
|
-0,--init action=init
|
||||||
-e:,--export: '$action=export; set@ exportdir'
|
-e:,--export: '$action=export; set@ exportdir'
|
||||||
-u,--update action=update
|
-u,--update action=update
|
||||||
-b:,--updatedir: updatedir=
|
-t:,--updatedir: updatedir=
|
||||||
-d:,--databasedir: dbdir=
|
-d:,--databasedir: dbdir=
|
||||||
-n:,--database: dbname=
|
-b:,--database: dbname=
|
||||||
|
-n,--fake fake=1
|
||||||
--force,--continue-on-error force=1
|
--force,--continue-on-error force=1
|
||||||
--no-data-csv data_csv=
|
--no-data-csv data_csv=
|
||||||
--force-data-csv data_csv=force
|
--force-data-csv data_csv=force
|
||||||
|
@ -970,6 +991,7 @@ elif [ "$action" == export ]; then
|
||||||
array_lsfiles updates "$dbdir"
|
array_lsfiles updates "$dbdir"
|
||||||
for update in "${updates[@]}"; do
|
for update in "${updates[@]}"; do
|
||||||
[ -d "$destdir" ] || mkdir -p "$destdir"
|
[ -d "$destdir" ] || mkdir -p "$destdir"
|
||||||
|
[[ "$update" == "*.devel.sql" ]] && continue
|
||||||
copy_update "$update" "$destdir"
|
copy_update "$update" "$destdir"
|
||||||
done
|
done
|
||||||
eend; eclearp
|
eend; eclearp
|
||||||
|
@ -1118,6 +1140,8 @@ for dbdir in "${dbdirs[@]}"; do
|
||||||
setx name=basename "$drop"
|
setx name=basename "$drop"
|
||||||
[ "$dbmode" == devel -o "${name%.devel.sql}" == "$name" ] || continue
|
[ "$dbmode" == devel -o "${name%.devel.sql}" == "$name" ] || continue
|
||||||
estep "$name"
|
estep "$name"
|
||||||
|
[ -n "$fake" ] && continue
|
||||||
|
|
||||||
sed "s/@@database@@/$dbname/g" "$drop" | mysql_admin_qe || abort_on_error "drop: $name"
|
sed "s/@@database@@/$dbname/g" "$drop" | mysql_admin_qe || abort_on_error "drop: $name"
|
||||||
done
|
done
|
||||||
eend
|
eend
|
||||||
|
@ -1131,6 +1155,8 @@ for dbdir in "${dbdirs[@]}"; do
|
||||||
setx name=basename "$create"
|
setx name=basename "$create"
|
||||||
[ "$dbmode" == devel -o "${name%.devel.sql}" == "$name" ] || continue
|
[ "$dbmode" == devel -o "${name%.devel.sql}" == "$name" ] || continue
|
||||||
estep "$name"
|
estep "$name"
|
||||||
|
[ -n "$fake" ] && continue
|
||||||
|
|
||||||
sed "s/@@database@@/$dbname/g" "$create" | mysql_admin_qe || abort_on_error "create: $name"
|
sed "s/@@database@@/$dbname/g" "$create" | mysql_admin_qe || abort_on_error "create: $name"
|
||||||
done
|
done
|
||||||
eend; eclearp
|
eend; eclearp
|
||||||
|
@ -1171,6 +1197,8 @@ for dbdir in "${dbdirs[@]}"; do
|
||||||
setx name=basename "$drop"
|
setx name=basename "$drop"
|
||||||
[ "$dbmode" == devel -o "${name%.devel.sql}" == "$name" ] || continue
|
[ "$dbmode" == devel -o "${name%.devel.sql}" == "$name" ] || continue
|
||||||
estep "$name"
|
estep "$name"
|
||||||
|
[ -n "$fake" ] && continue
|
||||||
|
|
||||||
sed "s/@@database@@/$dbname/g" "$drop" | oracle_admin_ve || abort_on_error "drop: $name"
|
sed "s/@@database@@/$dbname/g" "$drop" | oracle_admin_ve || abort_on_error "drop: $name"
|
||||||
done
|
done
|
||||||
eend
|
eend
|
||||||
|
@ -1184,6 +1212,8 @@ for dbdir in "${dbdirs[@]}"; do
|
||||||
setx name=basename "$create"
|
setx name=basename "$create"
|
||||||
[ "$dbmode" == devel -o "${name%.devel.sql}" == "$name" ] || continue
|
[ "$dbmode" == devel -o "${name%.devel.sql}" == "$name" ] || continue
|
||||||
estep "$name"
|
estep "$name"
|
||||||
|
[ -n "$fake" ] && continue
|
||||||
|
|
||||||
sed "s/@@database@@/$dbname/g" "$create" | oracle_admin_ve || abort_on_error "create: $name"
|
sed "s/@@database@@/$dbname/g" "$create" | oracle_admin_ve || abort_on_error "create: $name"
|
||||||
done
|
done
|
||||||
eend; eclearp
|
eend; eclearp
|
||||||
|
|
Loading…
Reference in New Issue