|
|
@@ -5679,6 +5679,47 @@ try {
|
|
|
} catch (Exception e) {
|
|
|
// 表已存在,忽略错误
|
|
|
}
|
|
|
+
|
|
|
+ // 迁移92: 创建health_meal_record表(饮食打卡记录)
|
|
|
+ try {
|
|
|
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS health_meal_record (" +
|
|
|
+ "id BIGINT AUTO_INCREMENT PRIMARY KEY, " +
|
|
|
+ "member_id BIGINT NOT NULL COMMENT '家庭成员ID', " +
|
|
|
+ "checkin_id BIGINT COMMENT '关联打卡ID', " +
|
|
|
+ "meal_type VARCHAR(32) COMMENT '餐次: breakfast/lunch/dinner/snack', " +
|
|
|
+ "food_items TEXT COMMENT '食物清单JSON', " +
|
|
|
+ "total_calories INT COMMENT '总卡路里', " +
|
|
|
+ "protein_g INT COMMENT '蛋白质克数', " +
|
|
|
+ "fat_g INT COMMENT '脂肪克数', " +
|
|
|
+ "carbs_g INT COMMENT '碳水克数', " +
|
|
|
+ "fiber_g INT COMMENT '膳食纤维克数', " +
|
|
|
+ "meal_time DATETIME COMMENT '用餐时间', " +
|
|
|
+ "remark VARCHAR(500) COMMENT '备注', " +
|
|
|
+ "created_at DATETIME DEFAULT CURRENT_TIMESTAMP, " +
|
|
|
+ "INDEX idx_member_id (member_id)" +
|
|
|
+ ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='饮食打卡记录'");
|
|
|
+ log.info("已创建health_meal_record表");
|
|
|
+ } catch (Exception e) {
|
|
|
+ // 表已存在,忽略错误
|
|
|
+ }
|
|
|
+
|
|
|
+ // 迁移93: 创建health_meditation_record表(冥想打卡记录)
|
|
|
+ try {
|
|
|
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS health_meditation_record (" +
|
|
|
+ "id BIGINT AUTO_INCREMENT PRIMARY KEY, " +
|
|
|
+ "member_id BIGINT NOT NULL COMMENT '家庭成员ID', " +
|
|
|
+ "checkin_id BIGINT COMMENT '关联打卡ID', " +
|
|
|
+ "duration_minutes INT COMMENT '时长(分钟)', " +
|
|
|
+ "type VARCHAR(32) COMMENT '类型: mindfulness/guided/breathing/body_scan', " +
|
|
|
+ "mood VARCHAR(32) COMMENT '冥想后心情', " +
|
|
|
+ "remark VARCHAR(500) COMMENT '备注', " +
|
|
|
+ "created_at DATETIME DEFAULT CURRENT_TIMESTAMP, " +
|
|
|
+ "INDEX idx_member_id (member_id)" +
|
|
|
+ ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='冥想打卡记录'");
|
|
|
+ log.info("已创建health_meditation_record表");
|
|
|
+ } catch (Exception e) {
|
|
|
+ // 表已存在,忽略错误
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private void runMigration89() {
|