假设我有一个业务网络v1.0.0,其中有一个参与者,其模型如下:
participant Member identified by memberId {
o String memberId
o String firstName
}在部署网络之后,我创建了一个成员。
稍后,我想向成员模型添加一个字段。例如。
participant Member identified by memberId {
o String memberId
o String firstName
o String lastName
}因此,我创建了新的网络并升级了前一个网络:
composer network upgrade -c peeradmin@hlfv1 -n example-netowrk -V 2.0.0我以前创建的成员发生了什么?被删除了吗?我如何将其保存在系统中并继续使用它,并仅通过添加lastName来更新它的信息
发布于 2018-10-04 07:08:26
https://hyperledger.github.io/composer/latest/reference/model-compatibility文档中描述了模型定义的演变,应该回答您的问题。
发布于 2018-10-04 10:24:04
当您更改模型时,您的api也会发生变化,以反映这些更改。你的数据不会消失,它不能,因为它在分类帐上,但它不会有新的字段,你增加了。
一旦您的新模型被部署,您就可以向该资产发出一个GET请求,这将为您提供所有现有数据,您可以使用所需的内容填充新字段,并对该资产发出PUT请求。这将为您提供新数据的旧资产。
当然,我建议您仔细考虑如何更改现有资产。我在这里想的是一项政策,它说你不应该重命名任何东西,你不应该删除任何东西。您应该做的就是添加新的属性。如果您开始使用重命名和删除,这必然会导致问题,特别是在生产环境中。
https://stackoverflow.com/questions/52638047
复制相似问题