#!/bin/bash # Script para cargar datos seed después de que Flyway haya migrado la BBDD # Uso: docker compose exec backend /docker-entrypoint-initdb.d/load-seed.sh # O directamente: ./db/load-seed.sh set -e echo "==> Esperando a que MySQL esté disponible..." for i in {1..30}; do if mysql -uroot -p"$DB_PASSWORD" -h mysql -e "SELECT 1" >/dev/null 2>&1; then echo "==> MySQL disponible!" break fi sleep 2 done echo "==> Verificando si ya hay datos..." USER_COUNT=$(mysql -uroot -p"$DB_PASSWORD" -h mysql "$DB_NAME" -sN -e "SELECT COUNT(*) FROM users WHERE username != 'admin';" 2>/dev/null || echo "0") if [ "$USER_COUNT" -gt 0 ]; then echo "==> La BBDD ya tiene datos ($USER_COUNT usuarios extra). Saltando seed." exit 0 fi echo "==> Cargando seed.sql..." mysql -uroot -p"$DB_PASSWORD" -h mysql "$DB_NAME" --default-character-set=utf8mb4 < /tmp/seed.sql 2>/dev/null || \ mysql -uroot -p"$DB_PASSWORD" -h mysql "$DB_NAME" < /docker-entrypoint-initdb.d/seed.sql if [ $? -eq 0 ]; then echo "==> Seed cargado correctamente!" else echo "==> Error al cargar seed. Intentando desde ubicación alternativa..." # Intentar copiar seed a la ubicación del contenedor docker compose cp backend/src/main/resources/db/seed.sql backend:/tmp/seed.sql docker compose exec backend bash -c "mysql -uroot -p\$DB_PASSWORD -h mysql \$DB_NAME --default-character-set=utf8mb4 < /tmp/seed.sql" fi echo "==> Seed completado!"