chore(api): use .env.production on server, .env for local dev only

Load production env without .env override; sync-api-env targets .env.production; PM2 NODE_ENV=production; Prisma uses with-api-env.cjs on deploy.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-07 23:33:34 +08:00
parent c6af8480a4
commit 6dc051f26d
13 changed files with 68 additions and 41 deletions
+10 -6
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env bash
# 在服务器上执行:拉取后的常规发版(不覆盖 .env、默认不 seed)
# 在服务器上执行:拉取后的常规发版(不覆盖 .env.production、默认不 seed
set -euo pipefail
APP_ROOT="${APP_ROOT:-/opt/dukang-haoke}"
@@ -46,17 +46,21 @@ pnpm approve-builds --all 2>/dev/null || true
pnpm install --frozen-lockfile 2>/dev/null || pnpm install
if [[ "$SKIP_DB" == false ]]; then
echo "==> 3. 数据库 schema 同步(构建前)"
echo "==> 3. 数据库 schema 同步(构建前,读取 .env.production"
cd "$APP_ROOT/server/dukang-api"
pnpm prisma:generate
if [[ ! -f .env.production ]]; then
echo "错误: 未找到 server/dukang-api/.env.production" >&2
exit 1
fi
node scripts/with-api-env.cjs pnpm prisma:generate
if [[ "$DB_PUSH_ACCEPT_DATA_LOSS" == true ]]; then
npx prisma db push --accept-data-loss
node scripts/with-api-env.cjs npx prisma db push --accept-data-loss
else
npx prisma db push
node scripts/with-api-env.cjs npx prisma db push
fi
if [[ "$RUN_SEED" == true ]]; then
echo "==> 执行 seed"
pnpm prisma:seed
node scripts/with-api-env.cjs pnpm prisma:seed
fi
cd "$APP_ROOT"
else