wso2 是改变嵌入式数据库模式

wso2 is change the embedded database schema

我正在使用 WSO2 IS 5.2.0

出于某些原因,我想更改默认嵌入式 H2 数据库的数据架构。

例如, table "IDN_OAUTH2_ACCESS_TOKEN" 中卷 "ACCESS_TOKEN" 的最大长度为 255 个字符。我想把它改成 8194。

我对配置文件“/dbscripts/identity/h2.sql”做了如下更改(查看值“8194”)

CREATE TABLE IF NOT EXISTS IDN_OAUTH2_ACCESS_TOKEN (
            TOKEN_ID VARCHAR (255),
            ACCESS_TOKEN VARCHAR (8194),
            REFRESH_TOKEN VARCHAR (255),
            CONSUMER_KEY_ID INTEGER,
            AUTHZ_USER VARCHAR (100),
            TENANT_ID INTEGER,
            USER_DOMAIN VARCHAR(50),
            USER_TYPE VARCHAR (25),
            GRANT_TYPE VARCHAR (50),
            TIME_CREATED TIMESTAMP DEFAULT 0,
            REFRESH_TOKEN_TIME_CREATED TIMESTAMP DEFAULT 0,
            VALIDITY_PERIOD BIGINT,
            REFRESH_TOKEN_VALIDITY_PERIOD BIGINT,
            TOKEN_SCOPE_HASH VARCHAR (32),
            TOKEN_STATE VARCHAR (25) DEFAULT 'ACTIVE',
            TOKEN_STATE_ID VARCHAR (128) DEFAULT 'NONE',
            SUBJECT_IDENTIFIER VARCHAR(255),
            PRIMARY KEY (TOKEN_ID),
            FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE,
            CONSTRAINT CON_APP_KEY UNIQUE (CONSUMER_KEY_ID,AUTHZ_USER,TENANT_ID,USER_DOMAIN,USER_TYPE,TOKEN_SCOPE_HASH,
                                           TOKEN_STATE,TOKEN_STATE_ID)

问题是我无法使此更改生效。我做了一切(重启、重新安装),原始设置(“256”)仍然存在...

似乎数据库模式已经在 IS 服务器映像中生成。并且生成的脚本文件显示 "GENERATE IF NOT EXISTS..."

有人知道吗?

谢谢

删除<IS_HOME>/repository/database/*。然后使用 -Dsetup.

启动服务器
./wso2server.sh -Dsetup

是的,它是随服务器分发生成的。您可以做的是(备份和)删除 repository/database 的内容,更新数据库脚本并使用 bin/wso2server.sh -Dsetup 启动服务器。只需执行一次,下次启动服务器即可。

另一种可能性是使用 H2 console。如果您已经有数据,那将是更好的选择。