补齐 API 构建产物中的数据库备份脚本

API 构建归档加入 scripts/database-backup-to-oss.mjs。

API 发布拉取上游构建产物时同步复制数据库备份脚本。

API 部署优先从构建产物写入 current release 的备份脚本,旧产物仅警告回退。

更新生产运维文档,记录 API release 必须携带备份脚本。
This commit is contained in:
kdletters
2026-06-09 15:28:32 +08:00
parent 568509027c
commit facbb2074c
4 changed files with 16 additions and 8 deletions

View File

@@ -332,14 +332,20 @@ mkdir -p "${RELEASE_DIR}"
cp "${SOURCE_DIR}/api-server" "${RELEASE_DIR}/api-server"
chmod +x "${RELEASE_DIR}/api-server"
SCRIPT_SOURCE_DIR="$(cd "${SCRIPT_DIR}/../.." && pwd)/scripts"
BACKUP_SCRIPT_SOURCE="${SOURCE_DIR}/scripts/database-backup-to-oss.mjs"
WORKSPACE_BACKUP_SCRIPT_SOURCE="$(cd "${SCRIPT_DIR}/../.." && pwd)/scripts/database-backup-to-oss.mjs"
mkdir -p "${RELEASE_DIR}/scripts"
if [[ -f "${SCRIPT_SOURCE_DIR}/database-backup-to-oss.mjs" ]]; then
cp "${SCRIPT_SOURCE_DIR}/database-backup-to-oss.mjs" "${RELEASE_DIR}/scripts/database-backup-to-oss.mjs"
chmod 0644 "${RELEASE_DIR}/scripts/database-backup-to-oss.mjs"
else
echo "[production-api-deploy] 未找到数据库备份脚本release 目录不会包含 scripts/database-backup-to-oss.mjs" >&2
if [[ ! -f "${BACKUP_SCRIPT_SOURCE}" ]]; then
if [[ -f "${WORKSPACE_BACKUP_SCRIPT_SOURCE}" ]]; then
echo "[production-api-deploy] 发布产物缺少 scripts/database-backup-to-oss.mjs回退使用部署工作区脚本请重新触发包含该脚本的 API 构建。" >&2
BACKUP_SCRIPT_SOURCE="${WORKSPACE_BACKUP_SCRIPT_SOURCE}"
else
echo "[production-api-deploy] 缺少数据库备份脚本: ${SOURCE_DIR}/scripts/database-backup-to-oss.mjs" >&2
exit 1
fi
fi
cp "${BACKUP_SCRIPT_SOURCE}" "${RELEASE_DIR}/scripts/database-backup-to-oss.mjs"
chmod 0644 "${RELEASE_DIR}/scripts/database-backup-to-oss.mjs"
if [[ -f "${SOURCE_DIR}/release-manifest.json" ]]; then
cp "${SOURCE_DIR}/release-manifest.json" "${RELEASE_DIR}/release-manifest.api-server.json"