From 9872d5d38b0fd0a9ddfc65138c8322b9fd6a6267 Mon Sep 17 00:00:00 2001 From: Beatrys | Estudante Date: Tue, 23 Jun 2026 19:24:10 -0300 Subject: [PATCH] Update deploy_database.sh --- Docker/scripts/deploy_database.sh | 63 ++++++++++++++++++------------- 1 file changed, 37 insertions(+), 26 deletions(-) diff --git a/Docker/scripts/deploy_database.sh b/Docker/scripts/deploy_database.sh index fea58ff850..4ea9327e56 100755 --- a/Docker/scripts/deploy_database.sh +++ b/Docker/scripts/deploy_database.sh @@ -1,32 +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 "Deploying migrations for $DATABASE_PROVIDER" - echo "Database URL: $DATABASE_URL" - # rm -rf ./prisma/migrations - # cp -r ./prisma/$DATABASE_PROVIDER-migrations ./prisma/migrations - npm run db:deploy - if [ $? -ne 0 ]; then - echo "Migration failed" - exit 1 - else - echo "Migration succeeded" - fi - 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 +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!"