From 7e80951415debe6e2467b94d1943d7d776cc0e8a Mon Sep 17 00:00:00 2001 From: Beatrys | Estudante Date: Tue, 23 Jun 2026 19:26:01 -0300 Subject: [PATCH] Update generate_database.sh --- Docker/scripts/generate_database.sh | 56 +++++++++++++++++++---------- 1 file changed, 38 insertions(+), 18 deletions(-) diff --git a/Docker/scripts/generate_database.sh b/Docker/scripts/generate_database.sh index 248c6cf23d..4ea9327e56 100644 --- a/Docker/scripts/generate_database.sh +++ b/Docker/scripts/generate_database.sh @@ -1,23 +1,43 @@ #!/bin/bash +set -e -source ./Docker/scripts/env_functions.sh +update_env() { + local key="$1" value="$2" + [ -z "$value" ] && return + grep -qE "^${key}=" .env 2>/dev/null && \ + sed -i "s|^${key}=.*|${key}=${value}|" .env || \ + echo "${key}=${value}" >> .env +} -if [ "$DOCKER_ENV" != "true" ]; then - export_env_vars +if [ -n "$DATABASE_PROVIDER" ]; then + PROVIDER="$DATABASE_PROVIDER" +else + PROVIDER=$(grep -E '^DATABASE_PROVIDER=' .env | head -1 | cut -d'=' -f2 | tr -d '"' | tr -d "'" | tr -d ' ') fi -if [[ "$DATABASE_PROVIDER" == "postgresql" || "$DATABASE_PROVIDER" == "mysql" || "$DATABASE_PROVIDER" == "psql_bouncer" ]]; then - export DATABASE_URL - echo "Generating database for $DATABASE_PROVIDER" - echo "Database URL: $DATABASE_URL" - npm run db:generate - if [ $? -ne 0 ]; then - echo "Prisma generate failed" - exit 1 - else - echo "Prisma generate succeeded" - fi -else - echo "Error: Database provider $DATABASE_PROVIDER invalid." - exit 1 -fi \ No newline at end of file +PROVIDER=$(echo "${PROVIDER:-postgresql}" | tr '[:upper:]' '[:lower:]') +[ "$PROVIDER" = "psql_bouncer" ] && PRISMA_PROVIDER="postgresql" || PRISMA_PROVIDER="$PROVIDER" + +update_env "DATABASE_PROVIDER" "$DATABASE_PROVIDER" +update_env "DATABASE_ENABLED" "$DATABASE_ENABLED" +update_env "SERVER_PORT" "$SERVER_PORT" +update_env "AUTHENTICATION_API_KEY" "$AUTHENTICATION_API_KEY" +update_env "CACHE_REDIS_ENABLED" "$CACHE_REDIS_ENABLED" +update_env "CACHE_LOCAL_ENABLED" "$CACHE_LOCAL_ENABLED" + +if [ -n "$DATABASE_CONNECTION_URI" ]; then + update_env "DATABASE_CONNECTION_URI" "$DATABASE_CONNECTION_URI" +elif [ -n "$DATABASE_CONNECTION_URL" ]; then + update_env "DATABASE_CONNECTION_URI" "$DATABASE_CONNECTION_URL" +elif [ -n "$DATABASE_URL" ]; then + update_env "DATABASE_CONNECTION_URI" "$DATABASE_URL" +fi + +DB_URI=$(grep -E '^DATABASE_CONNECTION_URI=' .env | head -1 | cut -d'=' -f2-) +[ -z "$DB_URI" ] && echo "ERRO: DATABASE_CONNECTION_URI não definido!" && exit 1 + +rm -rf ./prisma/migrations +cp -r "./prisma/${PRISMA_PROVIDER}-migrations" ./prisma/migrations + +npx prisma migrate deploy --schema "./prisma/${PRISMA_PROVIDER}-schema.prisma" +echo "==> Migrations aplicadas!"