使用作曲家更新业务网络后获取旧资产数据时出错
getting error while fetching old asset data after updateing business network using composer
旧资产模型:
由 order_Id {
标识的资产 PurchaseOrder
o String order_Id
o String asset_ID
o String asset_Name
o String order_Desc
o String order_Quantity
o String supplier_Id
}
更新资产模型为:
由 order_Id {
标识的资产 PurchaseOrder
o String order_Id
o String asset_ID
o String asset_Name
o String order_Desc
o String order_Quantity
o String supplier_Id
o String supplier_Name
}
然后使用 composer-cli 命令更新业务网络。
现在,当我尝试使用 composer-rest-server API 获取(GET)旧资产数据时,出现以下错误:
{
"error":{
"statusCode": 500,
"name": "Error",
"message": "Error: Instance org.suppchain.PurchaseOrder#o2 missing required field supplier_Name",
"code": 2,
"metadata": {
"_internal_repr": {}
},
"stack": "Error: Error: Instance org.suppchain.PurchaseOrder#o2 missing required field supplier_Name\n at /home/ubuntu/.nvm/versions/node/v6.9.5/lib/node_modules/composer-rest-server/node_modules/fabric-client/node_modules/grpc/src/node/src/client.js:434:17"
}
}
如果我们正在更新业务网络,我想,我们应该能够获取旧数据。使用 Composer 更新业务网络后,是否可以获取旧资产数据?
您对模型进行了不兼容的更改,从而破坏了模型兼容性。旧实例不再符合您的模型,无法反序列化。
您应该更新您的模型并使新的 supplier_Name
属性 可选或给它一个默认值。
例如:
asset PurchaseOrder identified by order_Id {
o String order_Id
o String asset_ID
o String asset_Name
o String order_Desc
o String order_Quantity
o String supplier_Id
o String supplier_Name optional
}
或者:
asset PurchaseOrder identified by order_Id {
o String order_Id
o String asset_ID
o String asset_Name
o String order_Desc
o String order_Quantity
o String supplier_Id
o String supplier_Name default="UNKNOWN"
}
旧资产模型:
由 order_Id {
标识的资产 PurchaseOrdero String order_Id
o String asset_ID
o String asset_Name
o String order_Desc
o String order_Quantity
o String supplier_Id
}
更新资产模型为:
由 order_Id {
标识的资产 PurchaseOrdero String order_Id
o String asset_ID
o String asset_Name
o String order_Desc
o String order_Quantity
o String supplier_Id
o String supplier_Name
}
然后使用 composer-cli 命令更新业务网络。
现在,当我尝试使用 composer-rest-server API 获取(GET)旧资产数据时,出现以下错误:
{
"error":{
"statusCode": 500,
"name": "Error",
"message": "Error: Instance org.suppchain.PurchaseOrder#o2 missing required field supplier_Name",
"code": 2,
"metadata": {
"_internal_repr": {}
},
"stack": "Error: Error: Instance org.suppchain.PurchaseOrder#o2 missing required field supplier_Name\n at /home/ubuntu/.nvm/versions/node/v6.9.5/lib/node_modules/composer-rest-server/node_modules/fabric-client/node_modules/grpc/src/node/src/client.js:434:17"
}
}
如果我们正在更新业务网络,我想,我们应该能够获取旧数据。使用 Composer 更新业务网络后,是否可以获取旧资产数据?
您对模型进行了不兼容的更改,从而破坏了模型兼容性。旧实例不再符合您的模型,无法反序列化。
您应该更新您的模型并使新的 supplier_Name
属性 可选或给它一个默认值。
例如:
asset PurchaseOrder identified by order_Id {
o String order_Id
o String asset_ID
o String asset_Name
o String order_Desc
o String order_Quantity
o String supplier_Id
o String supplier_Name optional
}
或者:
asset PurchaseOrder identified by order_Id {
o String order_Id
o String asset_ID
o String asset_Name
o String order_Desc
o String order_Quantity
o String supplier_Id
o String supplier_Name default="UNKNOWN"
}