Ver código fonte

refactor(db): users.role ENUM → VARCHAR(20); add migration 99

Xiaogang Liao 3 meses atrás
pai
commit
7a215059e8

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

@@ -5379,6 +5379,14 @@ try {
         log.warn("扩展health_gut_flora.level失败: {}", e.getMessage());
     }
     log.info("迁移98: health_gut_flora 表扩展完成");
+
+    // 迁移99: users.role 从 ENUM 改为 VARCHAR(20)(支持动态角色值)
+    try {
+        jdbcTemplate.execute("ALTER TABLE users MODIFY COLUMN role VARCHAR(20) NOT NULL COMMENT '角色: parent/child/teacher'");
+        log.info("已修改users.role为VARCHAR(20)");
+    } catch (Exception e) {
+        log.warn("修改users.role失败(可能已修改): " + e.getMessage());
+    }
     }
 
     private void runMigration82() {
@@ -6039,5 +6047,6 @@ try {
     } catch (Exception e) {
         log.error("迁移95 Step2 失败: " + e.getMessage());
     }
+    }
 }
 }

+ 1 - 1
cfc-backend/src/main/resources/schema.sql

@@ -17,7 +17,7 @@ CREATE TABLE IF NOT EXISTS users (
     openid VARCHAR(64) NOT NULL,
     unionid VARCHAR(64),
     family_id BIGINT NOT NULL,
-    role ENUM('parent','child','teacher','supplier_admin') NOT NULL,
+    role VARCHAR(20) NOT NULL,
     nickname VARCHAR(50),
     avatar VARCHAR(255),
     password VARCHAR(128),