feat: 移除服务中的运行时代码数据库初始化与分区维护逻辑,外部化相关功能并新增 SQL 脚本支持
This commit is contained in:
@@ -87,6 +87,34 @@
|
|||||||
- **THEN** 写入应路由到正确日分区
|
- **THEN** 写入应路由到正确日分区
|
||||||
- **AND** 常见查询(hotel_id + 时间范围)应触发分区裁剪
|
- **AND** 常见查询(hotel_id + 时间范围)应触发分区裁剪
|
||||||
|
|
||||||
|
### Requirement: 服务运行时不得承担建库与定时分区维护
|
||||||
|
系统 MUST 仅负责数据库连接与业务写入,不在服务启动时执行数据库结构初始化,也不在进程内执行定时分区维护。
|
||||||
|
|
||||||
|
#### Scenario: 服务启动仅建立连接
|
||||||
|
- **WHEN** 服务进程启动并连接 PostgreSQL
|
||||||
|
- **THEN** 系统应只创建连接池并完成连通性检测
|
||||||
|
- **AND** 不应在运行时执行表/索引/函数等 DDL 初始化
|
||||||
|
- **AND** 不应在进程内启动分区维护定时任务
|
||||||
|
|
||||||
|
#### Scenario: 写入遇到缺分区时的运行时兜底
|
||||||
|
- **WHEN** 批量写入 `heartbeat.heartbeat_events` 遇到缺分区错误
|
||||||
|
- **THEN** 系统应基于该批次的时间范围调用 `heartbeat.ensure_partitions`
|
||||||
|
- **AND** 调用后应重试当前批次写入
|
||||||
|
- **AND** 系统不应在运行时创建或替换数据库 schema 对象
|
||||||
|
|
||||||
|
### Requirement: 建库与分区维护能力必须以外部脚本提供
|
||||||
|
系统 MUST 在仓库根目录 `SQL_Script/` 提供可被外部程序调用的建库/分区维护脚本。
|
||||||
|
|
||||||
|
#### Scenario: 提供初始化脚本
|
||||||
|
- **WHEN** 运维或其他程序需要初始化数据库结构
|
||||||
|
- **THEN** 应可使用 `SQL_Script/01_init_schema.sql` 或 `SQL_Script/run_init.js`
|
||||||
|
- **AND** 脚本应支持幂等重复执行
|
||||||
|
|
||||||
|
#### Scenario: 提供分区预创建脚本
|
||||||
|
- **WHEN** 运维或外部调度需要预创建分区
|
||||||
|
- **THEN** 应可使用 `SQL_Script/02_create_partitions.sql` 或 `SQL_Script/run_ensure_partitions.js`
|
||||||
|
- **AND** 无需启动主服务进程即可执行分区维护
|
||||||
|
|
||||||
## ADDED Requirements
|
## ADDED Requirements
|
||||||
### Requirement: 分区表新增数组列与数组元素索<E7B4A0>?系统 SHALL <20>?`heartbeat.heartbeat_events` 中新增用于存储电力与空调子设备的数组列,并为指定数组列提供数组元素级查询索引<E7B4A2>?
|
### Requirement: 分区表新增数组列与数组元素索<E7B4A0>?系统 SHALL <20>?`heartbeat.heartbeat_events` 中新增用于存储电力与空调子设备的数组列,并为指定数组列提供数组元素级查询索引<E7B4A2>?
|
||||||
#### Scenario: 新增数组<E695B0>?- **WHEN** 部署或升级数据库结构<E7BB93>?- **THEN** 表应包含 elec_address、air_address、voltage、ampere、power、phase、energy、sum_energy、state、model、speed、set_temp、now_temp、solenoid_valve
|
#### Scenario: 新增数组<E695B0>?- **WHEN** 部署或升级数据库结构<E7BB93>?- **THEN** 表应包含 elec_address、air_address、voltage、ampere、power、phase、energy、sum_energy、state、model、speed、set_temp、now_temp、solenoid_valve
|
||||||
|
|||||||
Reference in New Issue
Block a user