sqlmig: support des profils
This commit is contained in:
parent
66e1674c00
commit
e493b49811
|
@ -0,0 +1,7 @@
|
||||||
|
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||||
|
|
||||||
|
# Mode par défaut: prod ou devel
|
||||||
|
#MODE=auto
|
||||||
|
|
||||||
|
# Répertoire des profils
|
||||||
|
#PROFILEDIR=/etc/sqlmig
|
64
sqlmig
64
sqlmig
|
@ -39,6 +39,16 @@ OPTIONS
|
||||||
Les options --sid et --nls-lang ne sont valides que pour Oracle. Ces
|
Les options --sid et --nls-lang ne sont valides que pour Oracle. Ces
|
||||||
valeurs remplacent les valeurs par défaut chargées depuis ora.conf
|
valeurs remplacent les valeurs par défaut chargées depuis ora.conf
|
||||||
|
|
||||||
|
--profile PROFILE
|
||||||
|
-P, --prod
|
||||||
|
-T, --test
|
||||||
|
Activer le profil spécifié. Les options -P et -T sont des aliases pour
|
||||||
|
les options --profile prod et --profile test respectivement.
|
||||||
|
Quand un profil est activé, les fichiers de configuration par défaut
|
||||||
|
deviennent respectivement \$PROFILE-my.cnf et \$PROFILE-ora.conf au lieu
|
||||||
|
de my.cnf et ora.conf. De plus, ces fichiers sont aussi recherchés dans
|
||||||
|
le répertoire /etc/sqlmig
|
||||||
|
|
||||||
--mysql
|
--mysql
|
||||||
--oracle
|
--oracle
|
||||||
Spécifier le type de base de données à gérer. Par défaut, on gère une
|
Spécifier le type de base de données à gérer. Par défaut, on gère une
|
||||||
|
@ -288,11 +298,24 @@ function mysql_after_update() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function mysql_set_adminargs() {
|
function mysql_get_defaults() {
|
||||||
local dir="$1"
|
local dir="$1"
|
||||||
|
if [ -z "$profile" ]; then
|
||||||
|
echo "$dir/my.cnf"
|
||||||
|
elif [ -f "$dir/${profile}-my.cnf" ]; then
|
||||||
|
echo "$dir/${profile}-my.cnf"
|
||||||
|
elif [ -f "$PROFILEDIR/${profile}-my.cnf" ]; then
|
||||||
|
echo "$PROFILEDIR/${profile}-my.cnf"
|
||||||
|
else
|
||||||
|
echo "$dir/my.cnf"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
function mysql_set_adminargs() {
|
||||||
|
local dir="$1" defaults
|
||||||
adminargs=()
|
adminargs=()
|
||||||
if [ -f "$dir/my.cnf" ]; then
|
setx defaults=mysql_get_defaults
|
||||||
array_add adminargs --defaults-file="$dir/my.cnf"
|
if [ -f "$defaults" ]; then
|
||||||
|
array_add adminargs --defaults-file="$defaults"
|
||||||
if [ -n "$admindefaults" ]; then
|
if [ -n "$admindefaults" ]; then
|
||||||
array_add adminargs --defaults-extra-file="$admindefaults"
|
array_add adminargs --defaults-extra-file="$admindefaults"
|
||||||
fi
|
fi
|
||||||
|
@ -302,10 +325,11 @@ function mysql_set_adminargs() {
|
||||||
[ ${#adminargs[*]} -gt 0 ] || array_add adminargs --default-character-set utf8
|
[ ${#adminargs[*]} -gt 0 ] || array_add adminargs --default-character-set utf8
|
||||||
}
|
}
|
||||||
function mysql_set_userargs() {
|
function mysql_set_userargs() {
|
||||||
local dir="$1" dbname="$2"
|
local dir="$1" dbname="$2" defaults
|
||||||
userargs=()
|
userargs=()
|
||||||
if [ -f "$dir/my.cnf" ]; then
|
setx defaults=mysql_get_defaults
|
||||||
array_add userargs --defaults-file="$dir/my.cnf"
|
if [ -f "$defaults" ]; then
|
||||||
|
array_add userargs --defaults-file="$defaults"
|
||||||
if [ -n "$userdefaults" ]; then
|
if [ -n "$userdefaults" ]; then
|
||||||
array_add userargs --defaults-extra-file="$userdefaults"
|
array_add userargs --defaults-extra-file="$userdefaults"
|
||||||
elif [ -f "$dir/my-${dbname}.cnf" ]; then
|
elif [ -f "$dir/my-${dbname}.cnf" ]; then
|
||||||
|
@ -573,10 +597,23 @@ function oracle_ensure_opdir() {
|
||||||
>"$SQLMIGLOG"
|
>"$SQLMIGLOG"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
function oracle_get_defaults() {
|
||||||
|
local dir="$1"
|
||||||
|
if [ -z "$profile" ]; then
|
||||||
|
echo "$dir/ora.conf"
|
||||||
|
elif [ -f "$dir/${profile}-ora.conf" ]; then
|
||||||
|
echo "$dir/${profile}-ora.conf"
|
||||||
|
elif [ -f "$PROFILEDIR/${profile}-ora.conf" ]; then
|
||||||
|
echo "$PROFILEDIR/${profile}-ora.conf"
|
||||||
|
else
|
||||||
|
echo "$dir/ora.conf"
|
||||||
|
fi
|
||||||
|
}
|
||||||
function oracle_source_adminconf() {
|
function oracle_source_adminconf() {
|
||||||
local dir="$1"
|
local dir="$1"
|
||||||
unset ORACLE_SID NLS_LANG ADMINCONNECT USERCONNECT SQLMIGLOG
|
unset ORACLE_SID NLS_LANG ADMINCONNECT USERCONNECT SQLMIGLOG
|
||||||
[ -f "$dir/ora.conf" ] && source "$dir/ora.conf"
|
setx defaults=oracle_get_defaults
|
||||||
|
[ -f "$defaults" ] && source "$defaults"
|
||||||
[ -n "$admindefaults" ] && {
|
[ -n "$admindefaults" ] && {
|
||||||
source "$admindefaults" || die
|
source "$admindefaults" || die
|
||||||
}
|
}
|
||||||
|
@ -594,7 +631,8 @@ function oracle_source_adminconf() {
|
||||||
function oracle_source_userconf() {
|
function oracle_source_userconf() {
|
||||||
local dir="$1" dbname="$2"
|
local dir="$1" dbname="$2"
|
||||||
unset ORACLE_SID NLS_LANG ADMINCONNECT USERCONNECT SQLMIGLOG
|
unset ORACLE_SID NLS_LANG ADMINCONNECT USERCONNECT SQLMIGLOG
|
||||||
[ -f "$dir/ora.conf" ] && source "$dir/ora.conf"
|
setx defaults=oracle_get_defaults
|
||||||
|
[ -f "$defaults" ] && source "$defaults"
|
||||||
[ -f "$dir/ora-${dbname}.conf" ] && source "$dir/ora-${dbname}.conf"
|
[ -f "$dir/ora-${dbname}.conf" ] && source "$dir/ora-${dbname}.conf"
|
||||||
[ -n "$userdefaults" ] && {
|
[ -n "$userdefaults" ] && {
|
||||||
source "$userdefaults" || die
|
source "$userdefaults" || die
|
||||||
|
@ -644,6 +682,10 @@ function oracle_user_update() {
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
MODE=auto
|
||||||
|
PROFILEDIR=/etc/sqlmig
|
||||||
|
set_defaults sqlmig
|
||||||
|
|
||||||
admindefaults=
|
admindefaults=
|
||||||
userdefaults=
|
userdefaults=
|
||||||
user=
|
user=
|
||||||
|
@ -655,6 +697,7 @@ socket=
|
||||||
charset=
|
charset=
|
||||||
oracle_sid=
|
oracle_sid=
|
||||||
nls_lang=
|
nls_lang=
|
||||||
|
profile=
|
||||||
type=auto
|
type=auto
|
||||||
action=update
|
action=update
|
||||||
updatedir=
|
updatedir=
|
||||||
|
@ -662,7 +705,7 @@ exportdir=
|
||||||
dbdir=
|
dbdir=
|
||||||
dbname=
|
dbname=
|
||||||
force=
|
force=
|
||||||
mode=auto
|
mode="$MODE"
|
||||||
drop=
|
drop=
|
||||||
drop_only=
|
drop_only=
|
||||||
create_only=
|
create_only=
|
||||||
|
@ -678,6 +721,9 @@ args=(
|
||||||
--character-set: charset=
|
--character-set: charset=
|
||||||
-s:,--oracle-sid: oracle_sid=
|
-s:,--oracle-sid: oracle_sid=
|
||||||
--nls-lang: nls_lang=
|
--nls-lang: nls_lang=
|
||||||
|
--profile: profile=
|
||||||
|
-P,--prod profile=prod
|
||||||
|
-T,--test profile=test
|
||||||
--mysql type=mysql
|
--mysql type=mysql
|
||||||
--oracle type=oracle
|
--oracle type=oracle
|
||||||
-0,--init action=init
|
-0,--init action=init
|
||||||
|
|
Loading…
Reference in New Issue