|
1 | 1 | #!/bin/bash |
| 2 | +set -e |
2 | 3 |
|
3 | | -source ./Docker/scripts/env_functions.sh |
| 4 | +update_env() { |
| 5 | + local key="$1" value="$2" |
| 6 | + [ -z "$value" ] && return |
| 7 | + grep -qE "^${key}=" .env 2>/dev/null && \ |
| 8 | + sed -i "s|^${key}=.*|${key}=${value}|" .env || \ |
| 9 | + echo "${key}=${value}" >> .env |
| 10 | +} |
4 | 11 |
|
5 | | -if [ "$DOCKER_ENV" != "true" ]; then |
6 | | - export_env_vars |
| 12 | +if [ -n "$DATABASE_PROVIDER" ]; then |
| 13 | + PROVIDER="$DATABASE_PROVIDER" |
| 14 | +else |
| 15 | + PROVIDER=$(grep -E '^DATABASE_PROVIDER=' .env | head -1 | cut -d'=' -f2 | tr -d '"' | tr -d "'" | tr -d ' ') |
7 | 16 | fi |
8 | 17 |
|
9 | | -if [[ "$DATABASE_PROVIDER" == "postgresql" || "$DATABASE_PROVIDER" == "mysql" || "$DATABASE_PROVIDER" == "psql_bouncer" ]]; then |
10 | | - export DATABASE_URL |
11 | | - echo "Deploying migrations for $DATABASE_PROVIDER" |
12 | | - echo "Database URL: $DATABASE_URL" |
13 | | - # rm -rf ./prisma/migrations |
14 | | - # cp -r ./prisma/$DATABASE_PROVIDER-migrations ./prisma/migrations |
15 | | - npm run db:deploy |
16 | | - if [ $? -ne 0 ]; then |
17 | | - echo "Migration failed" |
18 | | - exit 1 |
19 | | - else |
20 | | - echo "Migration succeeded" |
21 | | - fi |
22 | | - npm run db:generate |
23 | | - if [ $? -ne 0 ]; then |
24 | | - echo "Prisma generate failed" |
25 | | - exit 1 |
26 | | - else |
27 | | - echo "Prisma generate succeeded" |
28 | | - fi |
29 | | -else |
30 | | - echo "Error: Database provider $DATABASE_PROVIDER invalid." |
31 | | - exit 1 |
| 18 | +PROVIDER=$(echo "${PROVIDER:-postgresql}" | tr '[:upper:]' '[:lower:]') |
| 19 | +[ "$PROVIDER" = "psql_bouncer" ] && PRISMA_PROVIDER="postgresql" || PRISMA_PROVIDER="$PROVIDER" |
| 20 | + |
| 21 | +update_env "DATABASE_PROVIDER" "$DATABASE_PROVIDER" |
| 22 | +update_env "DATABASE_ENABLED" "$DATABASE_ENABLED" |
| 23 | +update_env "SERVER_PORT" "$SERVER_PORT" |
| 24 | +update_env "AUTHENTICATION_API_KEY" "$AUTHENTICATION_API_KEY" |
| 25 | +update_env "CACHE_REDIS_ENABLED" "$CACHE_REDIS_ENABLED" |
| 26 | +update_env "CACHE_LOCAL_ENABLED" "$CACHE_LOCAL_ENABLED" |
| 27 | + |
| 28 | +if [ -n "$DATABASE_CONNECTION_URI" ]; then |
| 29 | + update_env "DATABASE_CONNECTION_URI" "$DATABASE_CONNECTION_URI" |
| 30 | +elif [ -n "$DATABASE_CONNECTION_URL" ]; then |
| 31 | + update_env "DATABASE_CONNECTION_URI" "$DATABASE_CONNECTION_URL" |
| 32 | +elif [ -n "$DATABASE_URL" ]; then |
| 33 | + update_env "DATABASE_CONNECTION_URI" "$DATABASE_URL" |
32 | 34 | fi |
| 35 | + |
| 36 | +DB_URI=$(grep -E '^DATABASE_CONNECTION_URI=' .env | head -1 | cut -d'=' -f2-) |
| 37 | +[ -z "$DB_URI" ] && echo "ERRO: DATABASE_CONNECTION_URI não definido!" && exit 1 |
| 38 | + |
| 39 | +rm -rf ./prisma/migrations |
| 40 | +cp -r "./prisma/${PRISMA_PROVIDER}-migrations" ./prisma/migrations |
| 41 | + |
| 42 | +npx prisma migrate deploy --schema "./prisma/${PRISMA_PROVIDER}-schema.prisma" |
| 43 | +echo "==> Migrations aplicadas!" |
0 commit comments