#!/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