2016-04-27 56 views
1

我试图从greg 5.1.0升级到5.2.0,并且注意到数据库的问题。从5.1.0升级到wso2 greg 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表确实存在。然后,我登录商店和发布商,但没有看到我的内容。我检查了日志,并看到错误抛出,说明操作列不存在和一些其他奇怪的错误。我开始调查下面的数据库错误,因为这是我遇到的第一个错误。

ERROR {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文件我可以看到它正在运行的命令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上找到注册表迁移客户端,并且没有发现源的问题。我可以看到添加升级过程中指定的新表的迁移脚本,但我没有发现任何其他数据库更改,这些更改会使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

可以运行尖集查询identitty数据库上的(https://github.com/wso2/product-is/blob/master/modules/migration/migration-5.0.0_to_5.1.0 /scripts/identity/mysql.sql#L142-151)来解决上述问题。我们尚未完成迁移过程。文档将尽快更新身份迁移。 – Denuwanthi

+0

(https://docs.wso2.com/display/Governance520/Upgrading+from+a+Previous+Release)迁移文档 – Denuwanthi

+0

谢谢Denuwathi。在原来的问题中我没有意识到迁移程序并不完整。一旦你提到的部分被添加,我能够成功地执行安装。感谢您的帮助。 – jchaplin

回答

0

需要迁移相关的部件分开之前运行

wso2server.bat -Dmigrate = 5.2.0

命令身份组件和用户数据。

  1. 从此URL下载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 /迁移身份4.5.6_to_5.0.8/复制到G-REG_HOME/dbscripts /同一性/迁移身份4.5.6_to_5.0.8/MIGRATION_CLIENT_HOME /迁移-UM-4.5 .6_to_5.0.8/G-REG_HOME/dbscripts /迁移-UM-4.5.6_to_5.0.8/
  4. 然后,导航到G-REG_HOME/bin中/目录和EXECUT下面的命令来迁移身份和用户数据分开。

    wso2server.bat -Dmigrate -DmigrateIdentity =真-Dcomponent =身份

    wso2server.bat -Dmigrate -DmigrateUMDB =真-Dcomponent =身份

  5. 按照其余的迁移步骤在WSO2 official documentation中的说明这里。

如果打开MIGRATION_CLIENT_HOME /迁移身份4.5.6_to_5.0.8/mysql.sql脚本,你可以看到有一个aulter脚本添加命名为操作的IDN_AUTH_SESSION_STORE表中的新coulnm。

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