| 类型 | 唯一编辑源 | 生成/发布副本 | 规则 |
|---|---|---|---|
| 后端 | app/ |
deployment/app/ |
禁止直接修复发布副本 |
| 数据库脚本 | database/ |
deployment/database/ |
先改源脚本,再同步 |
| 后端入口 | 根目录 wsgi.py |
deployment/wsgi.py |
两者使用同一 app.create_app |
| 前端 | frontend/src/ |
frontend/dist/ |
dist/ 只由构建生成 |
| 本地容器 | deploy/docker/ |
Docker image/volume | 不复用生产容器和卷 |
app/ 为唯一后端源码。历史上 deployment/app/ 中仍有效的修复已经合并回 app/;此后只允许通过 bash deployment/sync_release.sh 生成发布副本。
flowchart LR
APP["app/"] --> TEST["Python tests"]
DB["database/"] --> TEST
FE["frontend/src/"] --> BUILD["npm production build"]
TEST --> SYNC["deployment/sync_release.sh"]
APP --> DOCKER["local Docker build"]
DB --> DOCKER
BUILD --> IMAGE["frontend image"]
SYNC --> RELEASE["deployment/ 发布包"]
发布门禁:
python -m pytest -q
python -m compileall -q app
npm --prefix frontend run build
bash deployment/sync_release.sh
diff -qr app deployment/app
diff -qr database deployment/database
git diff --check
N8N_API_URL 和 N8N_API_KEY 必须显式配置;缺失时失败关闭,不得回退线上地址。.env.local、密钥、数据库卷和构建日志不得提交。deploy/docker/docker-compose.yml 使用独立项目网络和命名卷启动 PostgreSQL、Neo4j、MinIO、n8n、后端与前端。验证地址与命令见 本地环境指南。
隔离约束:
database/ 当前脚本和本地验收用户。dataops-test Compose 项目。