diff --git a/tools/create_test_user.py b/tools/create_test_user.py index 3aa3e46..4dd99f4 100644 --- a/tools/create_test_user.py +++ b/tools/create_test_user.py @@ -143,7 +143,10 @@ async def upsert_user( "now": now, }, ) - # 角色绑定先清后插:`sys_user_role` 没有唯一约束,直接插会堆重复行。 + # 角色绑定先清后插。表上其实**有** `uk_sys_user_role (user_id, role_id)` 唯一键 + # (`tools/generate_baseline_sql.py:128`),所以直接 INSERT 不会堆重复行 —— + # 先清的理由是**支持改角色**:不清的话换角色会在表里留下两条绑定, + # `IdentityService` 解析出的 roles 就变成两个(既是 customer 又是 admin)。 await session.execute( text("DELETE FROM sys_user_role WHERE user_id = :user_id"), {"user_id": user_id} )