39 lines
1.3 KiB
Bash
39 lines
1.3 KiB
Bash
#!/bin/bash
|
|
# Script wrapper para MySQL
|
|
# Solo carga seed si DEBUG=true y la BD está vacía
|
|
|
|
# Ejecutar el entrypoint de MySQL y capturar el PID
|
|
/docker-entrypoint.sh "$@" &
|
|
MAIN_PID=$!
|
|
|
|
# Esperar a que MySQL esté realmente disponible
|
|
echo "==> Esperando a MySQL..."
|
|
for i in {1..60}; do
|
|
if mysql -uroot -p"$MYSQL_ROOT_PASSWORD" -e "SELECT 1" >/dev/null 2>&1; then
|
|
echo "==> MySQL disponible!"
|
|
break
|
|
fi
|
|
if ! kill -0 $MAIN_PID 2>/dev/null; then
|
|
echo "==> MySQL terminó inesperadamente"
|
|
exit 1
|
|
fi
|
|
sleep 1
|
|
done
|
|
|
|
# Si DEBUG=true y la BD está vacía (menos de 5 tablas), cargar seed
|
|
if [ "$DEBUG" = "true" ]; then
|
|
echo "==> DEBUG=true - Verificando datos..."
|
|
TABLE_COUNT=$(mysql -uroot -p"$MYSQL_ROOT_PASSWORD" "$MYSQL_DATABASE" -sN -e "SELECT COUNT(*) FROM information_schema.tables WHERE table_schema='$MYSQL_DATABASE' AND table_name NOT LIKE 'flyway%' AND table_name NOT LIKE 'sys%';" 2>/dev/null)
|
|
|
|
if [ "$TABLE_COUNT" -lt 5 ]; then
|
|
echo "==> BD casi vacía ($TABLE_COUNT tablas). Ejecutando seed.sql..."
|
|
mysql -uroot -p"$MYSQL_ROOT_PASSWORD" "$MYSQL_DATABASE" < /docker-entrypoint-initdb.d/seed.sql
|
|
echo "==> Seed completado!"
|
|
else
|
|
echo "==> BD ya tiene datos ($TABLE_COUNT tablas). Saltando seed."
|
|
fi
|
|
fi
|
|
|
|
# Esperar a que termine el proceso principal
|
|
wait $MAIN_PID
|