|
|
@@ -4220,6 +4220,27 @@ try {
|
|
|
|
|
|
// 迁移40: users表添加mascot字段(AI助手形象: xibao浠宝/fubao福宝)
|
|
|
ensureColumn("users", "mascot", "VARCHAR(20) DEFAULT NULL COMMENT 'AI助手形象: xibao(浠宝)/fubao(福宝)'");
|
|
|
+
|
|
|
+ // 迁移41: 创建family_relationships表(家庭成员双向关系,替代relationship_type/role_override)
|
|
|
+ try {
|
|
|
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS family_relationships (" +
|
|
|
+ "id BIGINT AUTO_INCREMENT PRIMARY KEY, " +
|
|
|
+ "family_id BIGINT NOT NULL COMMENT '所属家庭ID', " +
|
|
|
+ "from_member_id BIGINT NOT NULL COMMENT '关系起点成员ID', " +
|
|
|
+ "to_member_id BIGINT NOT NULL COMMENT '关系终点成员ID', " +
|
|
|
+ "generation_value INT NOT NULL COMMENT '辈分值: -1=子女, 0=同辈, 1=父母, 2=祖父母, 3=曾祖父母', " +
|
|
|
+ "relationship_key VARCHAR(50) COMMENT '关系标签key(冗余用于显示)', " +
|
|
|
+ "created_at DATETIME DEFAULT CURRENT_TIMESTAMP, " +
|
|
|
+ "updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, " +
|
|
|
+ "UNIQUE KEY uk_from_to (from_member_id, to_member_id), " +
|
|
|
+ "INDEX idx_family_id (family_id), " +
|
|
|
+ "INDEX idx_from (from_member_id), " +
|
|
|
+ "INDEX idx_to (to_member_id)" +
|
|
|
+ ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='家庭成员双向关系表'");
|
|
|
+ log.info("已创建family_relationships表");
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.warn("创建family_relationships表可能已存在: {}", e.getMessage());
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private void insertSysConfigSeed(String key, String value, String desc) {
|