diff --git a/.gitea/workflows/build-and-deploy.yml b/.gitea/workflows/build-and-deploy.yml index 7dea1b5..07af7c0 100644 --- a/.gitea/workflows/build-and-deploy.yml +++ b/.gitea/workflows/build-and-deploy.yml @@ -46,6 +46,24 @@ jobs: docker compose pull docker compose --project-name $APP_NAME down + + # Levantar solo Postgres para sincronizar contraseña antes de la app + docker compose --project-name $APP_NAME up -d postgres + + echo "⏳ Esperando a PostgreSQL..." + for i in $(seq 1 30); do + if docker exec -e PGPASSWORD="$POSTGRES_PASSWORD" $APP_NAME-postgres pg_isready -U "$POSTGRES_USER" -d "$POSTGRES_DB"; then + break + fi + sleep 1 + done + + echo "🔐 Sincronizando contraseña de usuario $POSTGRES_USER..." + ESCAPED_PASSWORD=${POSTGRES_PASSWORD//\'/\'\"\'\"\'} + docker exec -e PGPASSWORD="$POSTGRES_PASSWORD" $APP_NAME-postgres psql -U "$POSTGRES_USER" -d "$POSTGRES_DB" -c "ALTER ROLE \"$POSTGRES_USER\" WITH PASSWORD '${ESCAPED_PASSWORD}';" + docker exec -e PGPASSWORD="$POSTGRES_PASSWORD" $APP_NAME-postgres psql -U "$POSTGRES_USER" -d "$POSTGRES_DB" -c "SELECT pg_reload_conf();" + + # Ahora levantar app docker compose --project-name $APP_NAME up -d --remove-orphans --wait # Inicializar base de datos si es necesario