lawless/docker/postgres/init-honghuang.sh

35 行
1.4 KiB
Bash

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

#!/bin/sh
# PostgreSQL 容器首次启动时执行:
# 1. 创建游戏业务库 HONGHUANG_DB默认 honghuang
# 2. 在该库执行 database/migrations/001_init_schema.up.sql含参考数据 seed
set -e
DB_NAME="${HONGHUANG_DB:-honghuang}"
UP_SQL="/migrations/001_init_schema.up.sql"
echo "[postgres-init] Creating database '${DB_NAME}' if not exists..."
psql -v ON_ERROR_STOP=1 -U "${POSTGRES_USER}" -d "${POSTGRES_DB}" <<-EOSQL
SELECT 'CREATE DATABASE ${DB_NAME}'
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = '${DB_NAME}')\gexec
EOSQL
if [ -f "${UP_SQL}" ]; then
echo "[postgres-init] Running ${UP_SQL} on database '${DB_NAME}'..."
psql -v ON_ERROR_STOP=1 -U "${POSTGRES_USER}" -d "${DB_NAME}" -f "${UP_SQL}"
echo "[postgres-init] Migration and seed completed."
else
echo "[postgres-init] WARNING: ${UP_SQL} not found, skipping game schema init."
fi
# 执行开发测试数据种子脚本scripts/seed.sh
SEED_SCRIPT="/scripts/seed.sh"
if [ -f "${SEED_SCRIPT}" ] && [ -x "${SEED_SCRIPT}" ]; then
echo "[postgres-init] Running ${SEED_SCRIPT} on database '${DB_NAME}'..."
export DATABASE_URL="postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@localhost:5432/${DB_NAME}?sslmode=disable"
export DB_WAIT_TIMEOUT=60
bash "${SEED_SCRIPT}"
echo "[postgres-init] Seed script completed."
else
echo "[postgres-init] WARNING: ${SEED_SCRIPT} not found or not executable, skipping seed."
fi