清单.md 4.7 KB

数据库脚本清单

时差项目(Project_TL)数据库初始化脚本汇总 整理日期:2026-06-15 更新日期:2026-06-20(G4-2:两 migration 已并入 base;补幂等 runner init-database.sh) 所有脚本均从源代码各模块中抽取,统一存放于本目录。 文件名已与目标数据库名保持一致,导入时直接按文件名指定同名库即可。

〇、一键全新部署(推荐)

# 建齐 7 库 + 导入全部 base(含对焦扩列 / house_autofocus_calibration / operation_log),幂等可重跑
cd sql && ./init-database.sh                              # 默认 127.0.0.1:3306 root/root
./init-database.sh 192.168.0.108 3306 root root          # 指定服务器

init-database.sh 对每个库做 CREATE DATABASE IF NOT EXISTS + 导入对应 base 脚本(脚本内 DROP TABLE IF EXISTS), 全新部署一次跑完不缺表/列。⚠️ 已部署旧库的"增量升级"勿用本脚本(会重建表丢数据),改跑 migrations/(见下文四)。

一、业务库初始化脚本

脚本文件 目标数据库 对应模块 表数量 说明
aivfo-auth.sql aivfo-auth aivfo-gateway(认证/网关) 4 middle、permission、role、user 等认证授权表
aivfo_services.sql aivfo_services aivfo-service(核心服务) 2 alarm_contacts、tdi_log
aivfo-tl.sql aivfo-tl aivfo-data-transmission(数据传输) 4 video、video_pictures、video_splice、video_update
aivfo_tl_setting.sql aivfo_tl_setting aivof-tl-control(TL 控制配置) 18 告警/区域等配置表,含多语言;流水表已精简。含对焦扩列(tl_setting +5 / house_well_setting +2)与新表 house_autofocus_calibration(migrations/2026-06-17 已并入)
aivfo_tl.sql aivfo_tl aivfo-business-manage(业务管理) 25 病例/胚胎/字典等业务表,含多语言;流水表已精简

⚠️ 注意:aivfo_tl.sql(下划线,业务库)与 aivfo-tl.sql(中划线,数据传输库)是两个不同的库,名字相近勿混淆。

二、框架组件表结构脚本

脚本文件 目标数据库 来源框架组件 说明
log.sql log aivfo-log-spring-boot 系统日志表 system_log + 全量操作日志表 operation_log(migrations/2026-06-18 已并入)
quartz.sql quartz aivfo-quartz-spring-boot Quartz 定时任务表(MySQL 8.x 版本,表前缀 tqrtz)

三、说明

  • 每个脚本均为对应库的全量初始化脚本(含 DROP TABLE IF EXISTS + 建表),部署时导入同名库即可。
  • 脚本文件名 = 目标数据库名;aivfo-auth / aivfo-tl(中划线)与 aivfo_tl / aivfo_tl_setting / aivfo_services(下划线)的命名差异源自各服务 application-local.properties 中的 jdbc 配置,库名不可改动(应用引用),故以文件名向库名对齐。
  • logquartz 两库需手动创建(其余库已存在);脚本不含 CREATE DATABASE/USE,导入时由 mysql 客户端指定目标库。
  • 当前脚本为精简测试数据后的导出:业务流水/日志表(embryo_culture_record、video、log、message、alarm_data、mqtt_message、tdi_log 等)已清空,配置/字典/多语言表(mark、dictionary、photo_search_button、cn_region_info、language_configuration 等)完整保留。精简规则见 项目文档/需求文档/精简测试数据.sql(适配本地实际库名的版本为 精简测试数据_adapted.sql)。
  • 导入命令示例(Docker 容器 tl-mysql):

    docker exec -i tl-mysql mysql -uroot -proot 'aivfo-auth' < aivfo-auth.sql
    docker exec -i tl-mysql mysql -uroot -proot 'aivfo_tl'   < aivfo_tl.sql
    # …其余库同理,按文件名=库名导入
    

四、迁移脚本 migrations/(仅供已部署旧库增量升级)

脚本 目标库 内容 全新部署
migrations/2026-06-17-autofocus-data-layer.sql aivfo_tl_setting tl_setting +5 对焦列、house_well_setting +2 覆盖列、新表 house_autofocus_calibration 不需要(已并入 aivfo_tl_setting.sql)
migrations/2026-06-18-operation-log.sql log 新表 operation_log 不需要(已并入 log.sql)
  • 全新部署:只跑 base(init-database.sh 或逐库导入),已含上述表/列,勿再跑 migration
  • 已部署旧库升级:无这些表/列时才跑对应 migration。⚠️ MySQL 8 ADD COLUMN 不支持 IF NOT EXISTS, 旧库重跑 autofocus 迁移前先 DESC 判断列是否已存在,否则报 Duplicate column。
  • 本地 SQLite(operate 端 tl_setting/house_well_setting 缓存)列迁移不在此,见 待验证清单 V-046 / 开发计划 G4-3