|
|
@@ -10886,6 +10886,12 @@ log.info("迁移298: 已为无 openid 的 child 账号补齐 family_members 记
|
|
|
} catch (Exception e) {
|
|
|
log.warn("迁移314: meal_configs 添加 config_date 列失败(可能已存在): {}", e.getMessage());
|
|
|
}
|
|
|
+ try {
|
|
|
+ jdbcTemplate.execute("ALTER TABLE meal_configs ADD COLUMN config_date_eff DATE GENERATED ALWAYS AS (COALESCE(config_date, '9999-12-31')) STORED COMMENT '生效日期(NULL映射为9999-12-31,用于唯一约束)'");
|
|
|
+ log.info("迁移314: meal_configs 已添加生成列 config_date_eff");
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.warn("迁移314: meal_configs 添加 config_date_eff 生成列失败(可能已存在): {}", e.getMessage());
|
|
|
+ }
|
|
|
try {
|
|
|
jdbcTemplate.execute("ALTER TABLE meal_configs DROP INDEX uk_config");
|
|
|
log.info("迁移314: meal_configs 已删除旧 UNIQUE KEY uk_config");
|
|
|
@@ -10893,11 +10899,17 @@ log.info("迁移298: 已为无 openid 的 child 账号补齐 family_members 记
|
|
|
log.warn("迁移314: 删除旧 UNIQUE KEY 失败(可能不存在): {}", e.getMessage());
|
|
|
}
|
|
|
try {
|
|
|
- jdbcTemplate.execute("ALTER TABLE meal_configs ADD UNIQUE KEY uk_config (family_id, COALESCE(config_date, '9999-12-31'), meal_type)");
|
|
|
+ jdbcTemplate.execute("ALTER TABLE meal_configs ADD UNIQUE KEY uk_config (family_id, config_date_eff, meal_type)");
|
|
|
log.info("迁移314: meal_configs 已添加新 UNIQUE KEY uk_config(支持当天临时配置)");
|
|
|
} catch (Exception e) {
|
|
|
log.warn("迁移314: 添加新 UNIQUE KEY 失败: {}", e.getMessage());
|
|
|
}
|
|
|
+ try {
|
|
|
+ jdbcTemplate.execute("ALTER TABLE meal_configs ADD INDEX idx_config_date (config_date)");
|
|
|
+ log.info("迁移314: meal_configs 已添加索引 idx_config_date");
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.warn("迁移314: meal_configs 添加索引 idx_config_date 失败(可能已存在): {}", e.getMessage());
|
|
|
+ }
|
|
|
|
|
|
// 迁移315: membership_levels 新增 BASIC 体验会员等级(9.9元/月)
|
|
|
try {
|