📦 方案 1:最小化更新(推荐)

假设服务器路径为 /path/to/production

步骤 1:上传文件

上传整个 guide_app 目录

# 在本地执行
scp -r backend/myproject/guide_app user@server:/path/to/production/backend/myproject/

上传修改的配置文件

# 上传 settings.py
scp backend/myproject/myproject/settings.py user@server:/path/to/production/backend/myproject/myproject/

# 上传 urls.py
scp backend/myproject/myproject/urls.py user@server:/path/to/production/backend/myproject/myproject/

# 上传 requirements.txt
scp backend/requirements.txt user@server:/path/to/production/backend/

# 上传 docker-compose.yml
scp docker-compose.yml user@server:/path/to/production/

步骤 2:在服务器上操作

SSH 登录服务器

ssh user@server
cd /path/to/production

创建日志目录

mkdir -p backend/myproject/logs
chmod 755 backend/myproject/logs

安装新依赖(如果不使用 docker-compose)

# 如果是直接运行 Django(非 Docker)
cd backend
pip install django-cors-headers

重启 Docker 容器

# 方式 1:使用 docker-compose(会自动安装依赖)
docker-compose restart backend

# 方式 2:如果修改了 docker-compose.yml
docker-compose down backend
docker-compose up -d backend

步骤 3:验证部署

检查容器状态

docker-compose ps

查看容器日志

docker-compose logs --tail=50 backend

测试 API 端点

# 健康检查
curl http://localhost:8000/guide/health

# 导管列表
curl http://localhost:8000/guide/api/config/guideleaders

📦 方案 2:使用 Git 部署(如果项目使用 Git)

在本地提交修改

cd D:\Codes\ft_project
git add backend/myproject/guide_app/
git add backend/myproject/myproject/settings.py
git add backend/myproject/myproject/urls.py
git add backend/requirements.txt
git add docker-compose.yml
git commit -m "集成 guide_app 导游管理模块
- 添加 guide_app 应用
- 配置 CORS 支持
- 添加 /guide/ 路由
- 更新 docker-compose 启动命令"
git push

在服务器上拉取

ssh user@server
cd /path/to/production
git pull
# 创建日志目录
mkdir -p backend/myproject/logs
# 重启容器
docker-compose restart backend

📦 方案 3:完整文件列表(复制粘贴方式)

如果需要手动逐个文件传输,这是完整清单:

需要上传的文件

📁 新增目录和文件

backend/myproject/guide_app/                    (整个目录)
backend/myproject/logs/                         (空目录,手动创建)

📄 修改的文件(5 个)

1. backend/requirements.txt                     (1 行新增)
2. backend/myproject/myproject/settings.py      (约 60 行新增/修改)
3. backend/myproject/myproject/urls.py          (1 行新增)
4. backend/myproject/guide_app/templates/guide_management.html  (4 处路径修改)
5. docker-compose.yml                           (3 行修改)

⚠️ 注意事项

1. 备份生产环境(重要!)

cd /path/to/production
tar -czf ../backup_$(date +%Y%m%d_%H%M%S).tar.gz .

2. CORS 配置调整

记得在 settings.py 中修改 CORS_ALLOWED_ORIGINS,添加你的实际域名:

CORS_ALLOWED_ORIGINS = [
    "https://api.fantuwl.com",      # 你的实际域名
    "https://www.fantuwl.com",      # 如果有前端域名
]

3. 日志目录权限(如果使用非 root 用户)

sudo chown www-data:www-data backend/myproject/logs
# 或使用运行 Django 的用户

4. Docker vs 直接运行

  • 如果服务器使用 Docker: 修改后的 docker-compose.yml 会自动安装 django-cors-headers
  • 如果服务器直接运行 Django: 需要手动 pip install django-cors-headers