厦门地铁海底泵站预警系统
- Python 59.5%
- JavaScript 13.5%
- TypeScript 12.2%
- HTML 7.5%
- CSS 7.3%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| app | ||
| data | ||
| docs | ||
| frontend | ||
| scripts | ||
| sql | ||
| .env.example | ||
| .gitignore | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| requirements.txt | ||
| 系统设计说明.md | ||
| 预警规则引擎说明.md | ||
海底泵房故障预警系统
独立工程,与 twin_demo 分离。业务库为 MySQL;时序仍在 data/ts/*.pkl。
启动
cd 厦门地铁泵房预警
python -m venv .venv
# Windows:
.venv\Scripts\activate
# Linux:
# source .venv/bin/activate
pip install -r requirements.txt
copy .env.example .env # Linux: cp .env.example .env
# 编辑 .env,填写 DATABASE_URL
MySQL 建库:
CREATE DATABASE pump_warning DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
从现有 SQLite 迁数据(二选一):
方式 A — Python 脚本(推荐,已验证)
python scripts/migrate_sqlite_to_mysql.py --dry-run
python scripts/migrate_sqlite_to_mysql.py --yes
方式 B — SQL 文件(mysql 客户端直接执行)
# 1) 建表
mysql -h 192.168.2.204 -u pump_warning -p < sql/schema_mysql.sql
# 2) 从 SQLite 导出 INSERT(生成 sql/data_mysql.sql)
python scripts/export_sqlite_to_mysql_sql.py -o sql/data_mysql.sql
# 3) 导入数据
mysql -h 192.168.2.204 -u pump_warning -p pump_warning < sql/data_mysql.sql
已有 MySQL 库要备份/搬迁时,优先用:
mysqldump -h 192.168.2.204 -u pump_warning -p --databases pump_warning --default-character-set=utf8mb4 > sql/full_dump.sql
mysql -h HOST -u USER -p < sql/full_dump.sql
uvicorn app.main:app --host 0.0.0.0 --port 8000
浏览器打开:http://127.0.0.1:8000
默认管理员(首次启动自动创建,请在 .env 修改):
- 用户名:
AUTH_ADMIN_USER(默认admin) - 密码:
AUTH_ADMIN_PASSWORD(默认admin123)
未登录访问业务 API 将返回 401,页面会自动跳转 /login。
使用流程
- 规则:查看 / 调阈值
- 导入:填服务器路径(设备日志目录 / Excel SOE / Word 故障)
- 故障校对:确认时间与设备
- 全量分析:异步重写全部预警
- 报表:覆盖率 / 精确率 / 误报率 / 提前量
CentOS + 宝塔
- 不用 Docker
- 宝塔建库
pump_warning(utf8mb4)+ 专用账号 - 进程守护环境变量或项目根
.env配置DATABASE_URL - 虚拟环境 +
uvicorn(宝塔进程守护) - Nginx 反代到
127.0.0.1:8000
详见 系统设计说明.md。