diff options
author | Ramón M. Gómez <ramongomez@us.es> | 2019-12-16 12:09:35 +0100 |
---|---|---|
committer | Ramón M. Gómez <ramongomez@us.es> | 2019-12-16 12:09:35 +0100 |
commit | 0bd424bff731756eb16fa35886815baa48457d4c (patch) | |
tree | 889e26930568591ee1c24a07b674c74512e32e84 /installer/opengnsys_import.sh | |
parent | ab84872203138047b661858ad15234648a323e16 (diff) |
#945: `opengnsys_import.sh` script redefines the triggers creator user.
Diffstat (limited to 'installer/opengnsys_import.sh')
-rwxr-xr-x | installer/opengnsys_import.sh | 13 |
1 files changed, 2 insertions, 11 deletions
diff --git a/installer/opengnsys_import.sh b/installer/opengnsys_import.sh index e2f13d50..0e7121eb 100755 --- a/installer/opengnsys_import.sh +++ b/installer/opengnsys_import.sh @@ -258,24 +258,15 @@ password=$PASSWORD EOT fi -# Si la BD tiene no definido el trigger necesitamos permisos de root -mysql --defaults-extra-file=$MYCNF -e "SHOW TRIGGERS FROM $CATALOG;" |grep "Trigger" &>/dev/null -if [ $? -eq 0 ]; then - # Existe el trigger: eliminamos líneas del trigger en $CATALOG.sql - read -d\n INI END <<< $(grep -n -e TRIGGER -e "END.*;;" $MYSQLFILE |cut -d: -f1) - [ -n "$INI" ] && sed -i "$INI,${END}d" $MYSQLFILE -else - # No existe: necesitamos privilegios de root - grep "user=root" $MYCNF &>/dev/null || mysqlPassword -fi - # Si la versión es diferente usamos una tabla auxiliar para actualizar el .sql [ "$DIFFVERSION" == TRUE ] && updateSqlFile # Eliminamos las tablas que no importamos: repositorios, entorno +# definimos usuario creador de los "triggers # y añadimos los usuarios, sólo si no existen. sed -i -e '/Table structure.* `repositorios`/,/Table structure/d' \ -e '/Table structure.* `entornos`/,/Table structure/d' \ + -e "s/\(DEFINER=\`\)[^\`]*\(\`.* TRIGGER\)/\1$USUARIO\2/" \ -e '/Table structure.*`usuarios`/,/CHARSET/d' \ -e '/usuarios/s/IGNORE//g' \ -e '/usuarios/s/^INSERT /\nALTER TABLE usuarios ADD UNIQUE (usuario);\n\nINSERT IGNORE /g' $MYSQLFILE |