Murasame52 commited on
Commit
fbf2de9
·
verified ·
1 Parent(s): e92c9fa

Update start-space.sh

Browse files
Files changed (1) hide show
  1. start-space.sh +5 -3
start-space.sh CHANGED
@@ -12,7 +12,7 @@ else
12
  fi
13
 
14
  # ============================================================
15
- # 2. 自部署 PostgreSQL 初始化与启动(修正 psql 连接方式
16
  # ============================================================
17
  init_postgres() {
18
  echo "Initializing and starting self-deployed PostgreSQL..."
@@ -23,7 +23,7 @@ init_postgres() {
23
  mkdir -p "$PGDATA"
24
  chown postgres:postgres "$PGDATA"
25
 
26
- # 使用临时文件传递密码,避免 /dev/fd 权限问题
27
  pwfile=$(mktemp)
28
  echo "$POSTGRES_PASSWORD" > "$pwfile"
29
  chown postgres:postgres "$pwfile"
@@ -53,7 +53,8 @@ init_postgres() {
53
 
54
  # 创建应用用户和数据库(如果不存在)
55
  echo "Ensuring application user and database exist..."
56
- # 强制使用 TCP/IP 连接(-h localhost)避免 Unix 套接字目录不匹配
 
57
  su-exec postgres psql -h localhost -p 5432 -v ON_ERROR_STOP=1 --username postgres <<-EOSQL
58
  DO \$\$
59
  BEGIN
@@ -65,6 +66,7 @@ init_postgres() {
65
  SELECT 'CREATE DATABASE $POSTGRES_DB OWNER $POSTGRES_USER'
66
  WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = '$POSTGRES_DB')\gexec
67
  EOSQL
 
68
 
69
  # 设置 DATABASE_URL 及拆分变量,指向本地 PostgreSQL(不启用 SSL)
70
  export DATABASE_URL="postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@localhost:5432/${POSTGRES_DB}?sslmode=disable"
 
12
  fi
13
 
14
  # ============================================================
15
+ # 2. 自部署 PostgreSQL 初始化与启动(修正 postgres 密码认证
16
  # ============================================================
17
  init_postgres() {
18
  echo "Initializing and starting self-deployed PostgreSQL..."
 
23
  mkdir -p "$PGDATA"
24
  chown postgres:postgres "$PGDATA"
25
 
26
+ # 使用临时文件传递密码(该密码将同时用于 postgres 超级用户)
27
  pwfile=$(mktemp)
28
  echo "$POSTGRES_PASSWORD" > "$pwfile"
29
  chown postgres:postgres "$pwfile"
 
53
 
54
  # 创建应用用户和数据库(如果不存在)
55
  echo "Ensuring application user and database exist..."
56
+ # 使用 PGPASSWORD 环境变量传递 postgres 超级用户密码
57
+ export PGPASSWORD="$POSTGRES_PASSWORD"
58
  su-exec postgres psql -h localhost -p 5432 -v ON_ERROR_STOP=1 --username postgres <<-EOSQL
59
  DO \$\$
60
  BEGIN
 
66
  SELECT 'CREATE DATABASE $POSTGRES_DB OWNER $POSTGRES_USER'
67
  WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = '$POSTGRES_DB')\gexec
68
  EOSQL
69
+ unset PGPASSWORD # 清除,避免影响后续使用
70
 
71
  # 设置 DATABASE_URL 及拆分变量,指向本地 PostgreSQL(不启用 SSL)
72
  export DATABASE_URL="postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@localhost:5432/${POSTGRES_DB}?sslmode=disable"