summaryrefslogtreecommitdiffstats
path: root/installer/opengnsys_import.sh
diff options
context:
space:
mode:
authorRamón M. Gómez <ramongomez@us.es>2019-12-16 12:09:35 +0100
committerRamón M. Gómez <ramongomez@us.es>2019-12-16 12:09:35 +0100
commit0bd424bff731756eb16fa35886815baa48457d4c (patch)
tree889e26930568591ee1c24a07b674c74512e32e84 /installer/opengnsys_import.sh
parentab84872203138047b661858ad15234648a323e16 (diff)
#945: `opengnsys_import.sh` script redefines the triggers creator user.
Diffstat (limited to 'installer/opengnsys_import.sh')
-rwxr-xr-xinstaller/opengnsys_import.sh13
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