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。如果您已经有数据,那将是更好的选择。
我正在使用 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。如果您已经有数据,那将是更好的选择。