2026-01-24 22:36:29 +08:00
|
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
set -euo pipefail
|
|
|
|
|
|
|
|
|
|
|
|
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/_common.sh"
|
|
|
|
|
|
|
|
|
|
|
|
echo ">>> 创建数据库用户 ${DB_USER}"
|
|
|
|
|
|
if ! command -v psql >/dev/null; then
|
|
|
|
|
|
echo "❌ 未检测到 psql,请安装 PostgreSQL 客户端"
|
|
|
|
|
|
exit 1
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
2026-01-24 22:57:37 +08:00
|
|
|
|
echo "正在以管理员身份创建用户..."
|
|
|
|
|
|
if PGPASSWORD="${DB_ADMIN_PASS}" psql -h "${DB_HOST}" -p "${DB_PORT}" -U "${DB_ADMIN_USER}" -d postgres \
|
|
|
|
|
|
-Atc "SELECT 1 FROM pg_roles WHERE rolname='${DB_USER}'" | grep -qx '1'; then
|
|
|
|
|
|
echo "⚠️ 用户可能已存在"
|
|
|
|
|
|
else
|
|
|
|
|
|
PGPASSWORD="${DB_ADMIN_PASS}" psql -h "${DB_HOST}" -p "${DB_PORT}" -U "${DB_ADMIN_USER}" -d postgres \
|
|
|
|
|
|
-c "CREATE USER ${DB_USER} WITH PASSWORD '${DB_PASS}';"
|
|
|
|
|
|
fi
|
|
|
|
|
|
PGPASSWORD="${DB_ADMIN_PASS}" psql -h "${DB_HOST}" -p "${DB_PORT}" -U "${DB_ADMIN_USER}" -d postgres \
|
|
|
|
|
|
-c "GRANT ALL PRIVILEGES ON DATABASE ${DB_NAME} TO ${DB_USER};"
|
2026-01-24 22:36:29 +08:00
|
|
|
|
echo "✓ 数据库用户创建完成"
|