You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSO2 IS 5.11.0切换JDBC用户存储至PostgreSQL启动失败报错

问题分析与解决

你遇到的是WSO2 Identity Server 5.11.0切换PostgreSQL作为JDBC用户存储时,启动阶段插入admin用户违反um_user表um_user_id列非空约束的问题。从错误日志能看到,插入语句未给um_user_id赋值,但该列被设置为非空且无默认自增规则,导致插入失败。

解决步骤

1. 使用官方脚本初始化正确的表结构

WSO2为PostgreSQL预定义了包含自增序列、约束的用户存储表结构,不要手动创建表。找到<IS_HOME>/dbscripts/userstore/postgresql.sql脚本,在你的PostgreSQL数据库中执行该脚本,它会自动创建um_user等表,并为um_user_id配置正确的自增序列。

2. 完善JDBC用户存储配置

在deployment.toml中补充完整的用户存储配置,确保参数适配PostgreSQL:

[user_store]
type = "database"
database = "postgresql"
url = "jdbc:postgresql://<你的PostgreSQL地址>:<端口>/<数据库名>"
username = "<数据库用户名>"
password = "<数据库密码>"
driver = "org.postgresql.Driver"

[user_store.properties]
# 适配PostgreSQL的主键生成策略
UserIDGeneratorClass = "org.wso2.carbon.user.core.util.DefaultUserIDGenerator"
SequenceEnabled = "true"
SequenceName = "um_user_seq"

3. 清理冲突表(若已手动创建)

如果之前手动创建过um_user表,先删除该表及关联序列,再执行官方脚本,避免结构冲突。

完成以上操作后,重新启动WSO2 Identity Server,即可正常初始化admin用户,不会再触发非空约束异常。

内容的提问来源于stack exchange,提问作者user5919369

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 12:23:22