Просмотр исходного кода

fix: sleep_record 时间列改TIME类型 + 新增迁移269(幂等) 同步schema.sql

迁移269与schema.sql同步修改,保证建表快照与运行时DDL一致(AGENTS.md同步原则)
Xiaogang Liao 2 месяцев назад
Родитель
Сommit
8dfe896f00

+ 8 - 0
cfc-backend/src/main/java/com/etotem/cfc/config/DatabaseInitializer.java

@@ -3146,6 +3146,14 @@ public class DatabaseInitializer implements CommandLineRunner {
         runFullRegionDataMigrations();
         // seedFullRegionData(); 已废弃,区域数据由独立迁移处理
 
+        // 迁移269: sleep_record 修改 sleep_time/wake_time 为 TIME(前端按 HH:mm 打卡,java.sql.Time 三段格式)
+        try {
+            jdbcTemplate.execute("ALTER TABLE sleep_record MODIFY COLUMN sleep_time TIME, MODIFY COLUMN wake_time TIME");
+            log.info("已修改 sleep_record 时间为 TIME 类型");
+        } catch (Exception e) {
+            log.warn("sleep_record 时间列修改失败(可能已为 TIME): {}", e.getMessage());
+        }
+
     }
 
     private void migrateHealthDimensionsTable() {

+ 3 - 2
cfc-backend/src/main/resources/schema.sql

@@ -2174,6 +2174,7 @@ CREATE TABLE IF NOT EXISTS coupon (
     grant_level_code VARCHAR(32) COMMENT '发放规则对应会员等级',
     grant_period VARCHAR(16) COMMENT 'PERIODIC周期:MONTHLY/QUARTERLY',
     grant_quantity INT DEFAULT 1 COMMENT '每次发放数量',
+    status VARCHAR(16) DEFAULT 'ACTIVE' COMMENT '状态:ACTIVE=启用/DISABLED=停用',
     created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
     INDEX idx_valid_period (valid_from, valid_until)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='优惠券配置表';
@@ -3144,8 +3145,8 @@ CREATE TABLE IF NOT EXISTS sleep_record (
     id BIGINT AUTO_INCREMENT PRIMARY KEY,
     member_id BIGINT NOT NULL COMMENT '家庭成员ID',
     checkin_id BIGINT COMMENT '关联打卡ID',
-    sleep_time DATETIME COMMENT '入睡时间',
-    wake_time DATETIME COMMENT '醒来时间',
+    sleep_time TIME COMMENT '入睡时间',
+    wake_time TIME COMMENT '醒来时间',
     duration_minutes INT COMMENT '总睡眠时长(分钟)',
     deep_sleep_minutes INT COMMENT '深睡时长(分钟)',
     light_sleep_minutes INT COMMENT '浅睡时长(分钟)',