从5.1.0升级到wso2 greg 5.2.0并且收到数据库错误

时间:2016-04-27 22:51:58

标签: wso2 wso2greg

我正在尝试从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升级的一部分,但我只是想彻底改变并涵盖我能想到的所有可能性。

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

1 个答案:

答案 0 :(得分:0)

在运行

之前,您需要单独迁移标识组件和用户数据相关组件
  

wso2server.bat -Dmigrate = 5.2.0

命令。

  1. 从此网址下载migration client
  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 official documentation中的说明执行其余迁移步骤。

  6. 如果您打开 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;