feat(deploy): 缺少 deploy/.env 时复用安装目录中的历史配置
用户在重新解压发布包后再次执行 install.sh,因缺少 deploy/.env 被拦下。 按文档流程每次升级都要重新解压,若每次都要求重填数据库口令,既繁琐 又容易出错(口令含 * 等特殊字符)。 - 优先使用当前目录的 deploy/.env - 其次复用 $APP_DIR/deploy/.env(上次安装留下的配置) - 两处都没有才报错,且错误信息列出需要填写的五个字段及注意事项 实测三种情形: 全新安装(两处都无)→ 报错并给出字段说明,退出码 1 安装目录有历史配置 → 自动复用,退出码 0 当前目录已有 .env → 直接使用,不覆盖
This commit is contained in:
+18
-2
@@ -91,8 +91,24 @@ http_ok() {
|
||||
[ "$(id -u)" -eq 0 ] || die "需要 root 权限(安装 systemd 服务与 nginx 站点)。
|
||||
请以 root 身份执行,例如: su -c 'bash deploy/install.sh' 或 sudo bash deploy/install.sh"
|
||||
|
||||
[ -f deploy/.env ] || die "缺少 deploy/.env,请先:
|
||||
cp deploy/.env.example deploy/.env && vi deploy/.env"
|
||||
# 缺少 deploy/.env 时,若安装目录里已有上次安装留下的配置,直接复用。
|
||||
# 否则用户每次重新解压发布包都得重填一遍数据库口令(本次就是这么被绊住的)。
|
||||
if [ ! -f deploy/.env ]; then
|
||||
if [ -f "$APP_DIR/deploy/.env" ]; then
|
||||
log "未找到 deploy/.env,复用上次安装的配置:$APP_DIR/deploy/.env"
|
||||
cp "$APP_DIR/deploy/.env" deploy/.env
|
||||
else
|
||||
die "缺少 deploy/.env,请先:
|
||||
cp deploy/.env.example deploy/.env && vi deploy/.env
|
||||
|
||||
需要填写的内容(数据库连接信息由部署方提供):
|
||||
DB_HOST 现有 MySQL / MariaDB 地址
|
||||
DB_PORT 端口,默认 3306
|
||||
DB_USER 数据库账号
|
||||
DB_PASS 数据库口令(注意不要加引号)
|
||||
DB_NAME 数据库名"
|
||||
fi
|
||||
fi
|
||||
|
||||
set -a
|
||||
# shellcheck disable=SC1091
|
||||
|
||||
Reference in New Issue
Block a user