Files

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