我正在尝试从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:列名称无效'操作'。
查看java文件,我可以看到它在哪里运行命令agianst 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上找到了Registry Migration Client,没有找到源代码的问题。我可以看到迁移脚本添加了升级过程中指示的新表,但我看不到对数据库进行任何其他更改会使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升级的一部分,但我只是想彻底改变并涵盖我能想到的所有可能性。
我找不到数据库更新脚本,或者我错过/误解的步骤。我是否遗漏了某些内容或者没有理解升级程序中的某些内容?
乔
答案 0 :(得分:0)
在运行
之前,您需要单独迁移标识组件和用户数据相关组件wso2server.bat -Dmigrate = 5.2.0
命令。
然后导航到 G-REG_HOME / bin / 目录并执行以下命令以分别迁移身份和用户数据。
wso2server.bat -Dmigrate -DmigrateIdentity = true -Dcomponent = identity
wso2server.bat -Dmigrate -DmigrateUMDB = true -Dcomponent = identity
按照此处WSO2 official documentation中的说明执行其余迁移步骤。
如果您打开 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;