40 lines
1.3 KiB
Bash
Executable File
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"
|