部署类型代码从Reserved Hybris更改为非保留代码。我是否需要更新或初始化整个系统?

时间:2017-03-02 17:03:09

标签: hybris

我使用了一些Hybris保留的部署代码,然后更改为非保留的部署类型代码。我是否需要按顺序初始化系统以反映新部署代码的更改或仅更新工作。有许多项目已更改部署代码。为什么更新不起作用?

2 个答案:

答案 0 :(得分:1)

在部署表中使用保留代码时,您可能会在现有表中添加对象的属性。如果你有相同名称的属性,它肯定会在表格中乱七八糟(我不知道hybris将如何选择表格类型)。

当您使用良好的部署代码运行更新时,它将创建一个新表,这很好。两个对象使用的另一个表仍然可能会被破坏,因为hybris不会删除任何列。

这就是为什么你应该初始化你的系统以拥有一个干净的数据库。问题是您将丢失所有数据。

如果您需要迁移数据,那么可能会非常困难,因为您必须查看损坏的表并区分不应存在的属性和其他属性。所以我希望你这只是一个开发问题!

答案 1 :(得分:0)

实际上我建议你做初始化而不是更新更有可能更新在这种情况下不适合你您将收到一些错误消息invalid pk xxxxxxxxxxxx because of unknown typecode yyyy

您可能知道typeCode(部署代码)是PKsHybris生成过程的基本运算符,并且由于它,Hybris可以确保PKs的唯一性1}},所以即使你用新的typeCode更改了旧的HybristypeCode仍然可能会将旧的PKs保留在某个地方layout="column"已生成的内容永远不会与新的typeCode保持一致。

这就是为什么你永远不应该改变一个项目的类型代码。

我的建议是:

  1. 备份现有数据(可以从HMC导出, 你可以看一下alain.janinm的回答here)。
  2. 然后初始化您的系统。
  3. 然后重新导入数据。
  4.   

    注意:已经为hybris保留了0到10000之间的类型代码   特别的项目。