EOS系列 - 合约数据表字段升级

各种加字段手法测试

新老表差异 表内数据 升级手法 CURD 结果 解决方案
最后加一个加字段 无数据 re-deploy 加记录前查全表: OK
加记录(不带新字段): OK
加记录(带新字段): OK
加记录后查全表: OK
删除新数据行: OK
加记录后查全表: OK
指定查新数据行: OK
最后加一个字段 有老数据 re-deploy 加记录前查全表: Fail
加记录(不带新字段): OK
加记录(带新字段): OK
加记录后查全表: Fail
指定查新数据行: OK
指定查老数据行: Fail
修改新数据行: OK
修改老数据行: Fail
删除新数据行: OK
删除老数据行: Fail
最后加一个字段 有老数据 clear; redeploy 之前数据没了, 但之后一切 OK option1: 先清数据, 再改表字段
最后加一个字段 有老数据 数据迁移, 较复杂, 请参考 数据保留, 且之后一切 OK option2: 建新表结构, 建新表, 数据迁移, 改老表名, 再改新表名

方案

  • 简单: 先清数据, 再改表字段
  • 复杂: 建新表结构, 建新表, 数据迁移, 改老表名, 再改新表名
  • 推荐: 将所有属性字段序列化成json格式后,保存到合约表中的一个字段中
  • 推荐: 使用EOS 2.1版本的新功能,对象存储

往期精彩回顾:
区块链知识系列
密码学系列
共识系列
公链调研系列
以太坊系列
EOS系列
智能合约系列
Token系列

你可能感兴趣的:(EOS系列,智能合约系列,eos,WASM,智能合约,加字段,对象存储)