假设我有一个商业网络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 将其保留在系统中并继续使用并更新其信息?
答案 0 :(得分:1)
模型定义的演变在此处的文档中进行了描述 https://hyperledger.github.io/composer/latest/reference/model-compatibility,并应回答您的问题。
答案 1 :(得分:0)
当您更改模型时,您的api也将更改以反映更改。您的数据不会消失,不会像在分类帐上那样消失,但是不会包含您添加的新字段。
一旦部署了新模型,您就可以向该资产发出GET请求,这将为您提供所有现有数据,您可以根据需要填充新字段,然后对该资产发出PUT请求。现在,这将为您提供带有新数据的旧资产。
当然,我建议您仔细考虑如何更改现有资产。我在这里考虑的一项政策规定您不应重命名,也不应删除任何内容。您要做的就是添加新属性。如果您开始忙于重命名和删除操作,这势必会引起问题,尤其是在生产环境中。