# 🚨 DataOps Platform 启动失败快速修复 ## 问题现象 ```bash [ERROR] dataops-platform 重启失败! tail: cannot open '/opt/dataops-platform/logs/gunicorn_error.log' for reading: No such file or directory ``` ## 🔧 快速修复(3 步) ### 在服务器上执行以下命令: ```bash # 1. 上传最新代码到服务器 # (在本地执行,或使用 git pull) # 2. 进入脚本目录 cd /opt/dataops-platform/scripts # 3. 运行自动修复脚本 sudo chmod +x fix_startup.sh sudo ./fix_startup.sh ``` ## ✅ 如果修复成功 你会看到: ``` ✓ dataops-platform 启动成功! ✓ 健康检查通过! HTTP 状态码: 200 访问地址: http://localhost:5500 ``` ## ❌ 如果修复失败 ### 方案 A: 查看详细诊断 ```bash cd /opt/dataops-platform/scripts sudo chmod +x diagnose_issue.sh sudo ./diagnose_issue.sh ``` ### 方案 B: 查看错误日志 ```bash # 最重要的日志(通常能看到真正的错误) sudo tail -50 /var/log/supervisor/dataops-platform-stderr.log ``` ### 方案 C: 手动修复核心问题 最可能的原因是缺少时区数据(因为我们刚添加了 `zoneinfo` 模块): ```bash # 安装时区数据 sudo apt-get update sudo apt-get install -y tzdata # 创建日志目录 sudo mkdir -p /opt/dataops-platform/logs sudo chown ubuntu:ubuntu /opt/dataops-platform/logs # 重启服务 sudo supervisorctl restart dataops-platform # 查看状态 sudo supervisorctl status dataops-platform ``` ## 📋 验证修复 ```bash # 1. 检查服务状态(应该显示 RUNNING) sudo supervisorctl status dataops-platform # 2. 测试健康检查接口 curl http://localhost:5500/api/system/health # 3. 测试时区功能 cd /opt/dataops-platform source venv/bin/activate python -c "from app.core.common.timezone_utils import now_china_naive; print('当前东八区时间:', now_china_naive())" ``` ## 🔍 根本原因 我们最近的代码修改引入了 `zoneinfo` 模块用于处理东八区时间。 **重要**: - Python 3.9+ 使用标准库 `zoneinfo` - Python 3.8 需要使用 `backports.zoneinfo` 包 - 两者都需要系统安装 `tzdata` 包 修改的文件: - `app/core/common/timezone_utils.py` - 新增的时区工具模块(已兼容 Python 3.8) - `app/models/data_product.py` - 使用东八区时间 - `app/models/metadata_review.py` - 使用东八区时间 - 其他服务层文件 ## 📞 需要帮助? 如果以上方法都无法解决,请提供: 1. 诊断输出: ```bash cd /opt/dataops-platform/scripts sudo ./diagnose_issue.sh > ~/diagnosis.log 2>&1 cat ~/diagnosis.log ``` 2. 错误日志: ```bash sudo tail -100 /var/log/supervisor/dataops-platform-stderr.log ``` ## 📚 详细文档 查看完整的故障排查指南: ```bash cat /opt/dataops-platform/scripts/TROUBLESHOOTING.md ```