56 lines
1.6 KiB
Plaintext
56 lines
1.6 KiB
Plaintext
|
|
========================================
|
|||
|
|
数据库表检查结果
|
|||
|
|
========================================
|
|||
|
|
|
|||
|
|
检查时间:$(date)
|
|||
|
|
|
|||
|
|
一、表存在性检查
|
|||
|
|
----------------
|
|||
|
|
✓ 所有核心表都已正常创建:
|
|||
|
|
- sys_user ✓
|
|||
|
|
- sys_role ✓
|
|||
|
|
- sys_menu ✓
|
|||
|
|
- sys_dept ✓
|
|||
|
|
- sys_post ✓
|
|||
|
|
- sys_config ✓
|
|||
|
|
- sys_dict_type ✓
|
|||
|
|
- sys_dict_data ✓
|
|||
|
|
- sys_notice ✓
|
|||
|
|
- sys_oper_log ✓
|
|||
|
|
- sys_logininfor ✓
|
|||
|
|
|
|||
|
|
二、sys_user 表结构问题
|
|||
|
|
----------------------
|
|||
|
|
⚠️ 发现必填但无默认值的字段:
|
|||
|
|
1. user_name (varchar(30)) - 用户账号
|
|||
|
|
2. nick_name (varchar(30)) - 用户昵称
|
|||
|
|
|
|||
|
|
三、问题分析
|
|||
|
|
------------
|
|||
|
|
当前错误:Field 'nick_name' doesn't have a default value
|
|||
|
|
|
|||
|
|
原因:
|
|||
|
|
- sys_user 表中 nick_name 字段定义为 NOT NULL 且无默认值
|
|||
|
|
- 微信登录代码在创建新用户时未设置 nick_name 字段
|
|||
|
|
|
|||
|
|
解决方案:
|
|||
|
|
1. 【已修复】在代码中设置 nick_name 字段值
|
|||
|
|
- 文件:SysLoginController.java
|
|||
|
|
- 修改:在创建用户时添加 user.setNickName(phoneNumber)
|
|||
|
|
|
|||
|
|
2. 【可选】修改数据库表结构,允许 nick_name 为 NULL
|
|||
|
|
- 执行:sql/fix_nick_name_default.sql
|
|||
|
|
|
|||
|
|
四、修复状态
|
|||
|
|
------------
|
|||
|
|
✓ 代码已修复:在创建用户时设置 nick_name
|
|||
|
|
✓ openid 字段已添加
|
|||
|
|
⚠️ 建议:考虑修改数据库表结构,允许 nick_name 为 NULL
|
|||
|
|
|
|||
|
|
五、其他表的问题
|
|||
|
|
----------------
|
|||
|
|
其他表的问题主要是主键字段(如 user_id, role_id 等)必填但无默认值,
|
|||
|
|
这是正常的,因为这些字段是自增主键,不需要默认值。
|
|||
|
|
|
|||
|
|
========================================
|