|
@@ -2016,6 +2016,36 @@ log.info("已添加template_id列到tasks表");
|
|
|
log.warn("检查/添加 users 表 show_to_family 列失败: {}", e.getMessage());
|
|
log.warn("检查/添加 users 表 show_to_family 列失败: {}", e.getMessage());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ // 迁移: tasks 表添加 family_member_id 列(FamilyMember 迁移)
|
|
|
|
|
+ try {
|
|
|
|
|
+ Integer colExists = jdbcTemplate.queryForObject(
|
|
|
|
|
+ "SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'tasks' AND COLUMN_NAME = 'family_member_id'",
|
|
|
|
|
+ Integer.class);
|
|
|
|
|
+ if (colExists == null || colExists == 0) {
|
|
|
|
|
+ jdbcTemplate.execute("ALTER TABLE tasks ADD COLUMN family_member_id BIGINT COMMENT '家庭成员ID(关联 family_members.id)'");
|
|
|
|
|
+ log.info("已为 tasks 表添加 family_member_id 列");
|
|
|
|
|
+ } else {
|
|
|
|
|
+ log.info("tasks 表 family_member_id 列已存在,跳过");
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.warn("检查/添加 tasks 表 family_member_id 列失败: {}", e.getMessage());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 迁移: family_members 表添加 role_override 列(FamilyMember 迁移)
|
|
|
|
|
+ try {
|
|
|
|
|
+ Integer colExists = jdbcTemplate.queryForObject(
|
|
|
|
|
+ "SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'family_members' AND COLUMN_NAME = 'role_override'",
|
|
|
|
|
+ Integer.class);
|
|
|
|
|
+ if (colExists == null || colExists == 0) {
|
|
|
|
|
+ jdbcTemplate.execute("ALTER TABLE family_members ADD COLUMN role_override VARCHAR(20) DEFAULT 'auto' COMMENT '角色覆盖: auto/parent/child/elderly,空=auto'");
|
|
|
|
|
+ log.info("已为 family_members 表添加 role_override 列");
|
|
|
|
|
+ } else {
|
|
|
|
|
+ log.info("family_members 表 role_override 列已存在,跳过");
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.warn("检查/添加 family_members 表 role_override 列失败: {}", e.getMessage());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
// ==================== DanShop 电商模块建表 ====================
|
|
// ==================== DanShop 电商模块建表 ====================
|
|
|
// 1. danshop_categories (商品分类表)
|
|
// 1. danshop_categories (商品分类表)
|
|
|
try {
|
|
try {
|