duxingchen b265e299c6 chore(deploy): 用 rsync 版部署脚本替换 tar+scp 的旧脚本
旧 deploy.sh 有三个问题:
  · 完全不跑迁移 —— 新代码上了、表结构没升,接口会成片 500;
  · 「先 mv backend backend_old 再解压」存在中间态,解压或 build 失败时远端只剩一个 backend_old,服务当场躺平;
  · set -e 下还写了 if [ $? -ne 0 ] 检查,根本走不到就已经退出。

新脚本改用 rsync 增量同步:改一个文件只传一个文件,也不会留下半残状态。迁移默认执行(alembic upgrade head 本身幂等,已在 head 时是空操作),不再是「忘了加 --migrate」就埋雷的选填开关。

实测踩到的坑也一并写进脚本:
  · 容器以 root 写挂载目录、宿主机侧属主是 root,rsync 会报 mkstemp/unlink Permission denied —— [0/5] 先探目录可写性并直接给出 chown 命令;
  · --delete 前先干跑列出将被删除的文件,不静默删掉远端专有物;
  · 排除 backend_old / frontend_old / track_backup.sh —— 前者可能有数据库仍在引用的历史上传图,后者是远端专有的运维脚本。
2026-10-09 15:55:44 +08:00
2026-09-28 15:01:42 +08:00
Description
IRIS生成管理APP
16 MiB
Languages
Python 36.2%
TypeScript 33.8%
Vue 27.5%
JavaScript 1.3%
CSS 0.3%
Other 0.9%