从 5.1.0 升级到 WSO2 GREG 5.2.0,并收到数据库错误



我正在尝试从greg 5.1.0升级到5.2.0,并注意到数据库存在问题。

按照记录的过程,我将新产品版本与先前版本的数据库连接起来,下载了org.wso2.carbon.greg.migrate.client-5.2.0.jar并将其放入dropins文件夹中。 从 greg 主目录,我已经导航到/bin 并运行 wso2server.bat-Dmigrate=5.2.0。 完成后,我执行了强制数据迁移(wso2server.bat -Dmigrate=5.2.0 -DmigrateProvider=true)。 然后,我重新索引了所有内容,并在建议的检查点验证了IDP_METADATA表和SP_METADATA表确实存在。 然后,我登录到应用商店和发布者,但看不到我的内容。 我检查了日志,看到抛出的错误,指出 OPERATION 列不存在和其他一些奇怪的错误。我开始调查下面的数据库错误,因为这是我遇到的第一个错误。

错误 {org.wso2.carbon.identity.application.authentication.framework.store.SessionDataStore} - 存储会话数据时出错 {org.wso2.carbon.identity.application.authentication.framework.store.SessionDataStore}com.microsoft.sqlserver.jdbc.SQLServerException:无效的列名"OPERATION"。

查看java文件,我可以看到它在哪里运行命令,IDN_AUTH_SESSION_STORE,OPERATION是它引用的字段之一。 我在数据库中查找该表,但该字段不存在。 这让我想知道是否有任何其他更改,所以我对 5.1.0 创建脚本和 5.2.0 创建脚本进行了比较。 基于该比较,我可以在 5.1.0 中看到该字段不存在,但在 5.2.0 中确实存在。 除了过程中提到的新表以及与此错误的差异之外,这两个脚本之间还存在一些细微的差异。

那时,我开始调查org.wso2.carbon.greg.migrate.client-5.2.0.jar的一部分。 我在 github 上找到了注册表迁移客户端,找到源代码没有问题。 我可以看到迁移脚本,这些脚本添加了升级过程中指示的新表,但我看不到对数据库进行任何其他更改,这些更改会使 5.1.0 数据库与 5.2.0 开箱即用的内容内联。

我知道 5.2.0 是基于碳 4.4.5 的,

而 5.1.0 是基于 4.4.1 的,所以我检查了碳文档,想知道这在技术上是否是碳变化而不是格雷格变化,但根据碳文档没有数据库更改了从 4.4.1-4.4.5 升级任何增量版本。 如果需要,我希望该更改成为 greg 升级的一部分,但只是试图彻底并涵盖我能想到的所有可能性。

找不到数据库更新脚本或我错过/误解的步骤。 我在升级过程中是否遗漏了某些内容或不理解某些内容?

在运行

wso2server.bat -dmigrate=5.2.0

命令。

  1. 从此 URL 下载迁移客户端。
  2. 然后将 MIGRATION_CLIENT_HOME/org.wso2.carbon.is.migrate.client-5.1.0.jar 文件复制到 G-REG_HOME/repository/components/dropins/ 目录。
  3. 然后将 MIGRATION_CLIENT_HOME/migration-identity-4.5.6_to_5.0.8/复制到 G-REG_HOME/dbscripts/identity/migration-identity-4.5.6_to_5.0.8/和 MIGRATION_CLIENT_HOME/migration-um-4.5.6_to_5.0.8/复制到 G-REG_HOME/dbscripts/migration-um-4.5.6_to_5.0.8/
  4. 然后导航到 G-REG_HOME/bin/ 目录并执行以下命令以分别迁移标识和用户数据。

    wso2server.bat -Dmigrate -DmigrateIdentity=true -Dcomponent=identity

    wso2server.bat -Dmigrate -DmigrateUMDB=true -Dcomponent=identity

  5. 按照此处的 WSO2 官方文档中的说明执行其余迁移步骤。

如果打开 MIGRATION_CLIENT_HOME/migration-identity-4.5.6_to_5.0.8/mysql.sql 脚本,您可以看到有一个 aulter 脚本将名为 OPERATION 的新 coulnm 添加到IDN_AUTH_SESSION_STORE表中。

ALTER TABLE IDN_AUTH_SESSION_STORE ADD OPERATION VARCHAR(10) NOT NULL;

最新更新