erp_be/scripts/setup-db.sh
2026-06-17 11:30:11 +05:30

40 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
DB_HOST="${DB_HOST:-demo.venbait.in}"
DB_PORT="${DB_PORT:-5432}"
DB_NAME="${DB_NAME:-bharaterp}"
DB_USER="${DB_USER:-bharaterpdevdbuser}"
DB_PASSWORD="${DB_PASSWORD:-devdbuser@bharaterp}"
DDL_PATH="${1:-/home/smart/Downloads/erp_phase1_ddl.sql}"
PRISMA_VERSION="${PRISMA_VERSION:-5.22.0}"
if [ ! -f "$DDL_PATH" ]; then
echo "DDL file not found: $DDL_PATH"
exit 1
fi
ENCODED_PASSWORD="${DB_PASSWORD//@/%40}"
POSTGRES_URL="postgresql://${DB_USER}:${ENCODED_PASSWORD}@${DB_HOST}:${DB_PORT}/postgres?schema=public"
TARGET_URL="postgresql://${DB_USER}:${ENCODED_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_NAME}?schema=public"
echo "Checking Prisma CLI availability (npx prisma@${PRISMA_VERSION})"
npx "prisma@${PRISMA_VERSION}" --version >/dev/null
echo "Trying to create database: $DB_NAME"
set +e
DATABASE_URL="$POSTGRES_URL" npx "prisma@${PRISMA_VERSION}" db execute --stdin --schema prisma/schema.prisma <<SQL
CREATE DATABASE ${DB_NAME};
SQL
CREATE_EXIT=$?
set -e
if [ "$CREATE_EXIT" -ne 0 ]; then
echo "Create DB skipped (likely already exists or insufficient CREATE DATABASE privilege). Continuing..."
fi
echo "Applying DDL file: $DDL_PATH"
DATABASE_URL="$TARGET_URL" npx "prisma@${PRISMA_VERSION}" db execute --file "$DDL_PATH" --schema prisma/schema.prisma
echo "Database setup complete for $DB_NAME on $DB_HOST"