【特殊需求实现研究】元数据历史版本的还原原创
金蝶云社区-阿丁编程
阿丁编程
2人赞赏了该文章 730次浏览 未经作者许可,禁止转载编辑于2022年09月30日 19:53:24

需求背景:

        各种意外情况没有备份元数据的情况下,被修改或者覆盖了,希望还原到之前某一天的版本。


故事=事故:

        j_0012.gif,手残去测试环境点了同步svn(本来是想把正式环境覆盖到准生产环境,结果登录错了,登录到了测试环境没发现),结果开发的同事最后一次提交svn是3月份的,现在是9月份,苍穹的同步是直接把最后一个svn版本直接覆盖当前版本元数据j_0008.gif,所以3月到9月之间的修改都丢失了,即使去正式环境拿过来重新覆盖,那只是能恢复到最后一次部署的状态,而最后一次部署之后开发的内容,正在测试的内容就都没了,所以根据以前的分析过程记得每次的元数据都会保留一个新版本,现在去找一下看能不能恢复回来。


还原过程:


1、查看正式环境备份的时间,也就是要还原到8月31日08:54:37这个时间之前的数据版本

2、需要还原的单据为采购合同的扩展开发,单据标识为:kdgz_conm_purcontract_ext

3、根据以前的分析找到元数据记录的历史版本

image.png

好像是只存最近几天的记录,幸亏还有救,要是晚几天弄就没了


4、那就用8月30日最后一次修改的版本【1630334054666】作为还原的基础吧

image.png


5、当然还原之前先备份一下当前的版本元数据,包括需要还原的版本,还原版本的下一个版本(也就是出问题的版本),最后一个版本

image.png


6、查询当前的元数据进行备份和对比还原

image.png


7、直接打开设计界面,打开XML查看

复制 DesignFormMeta 标签的所有内容到表单元数据

复制 DesignEntityMeta 标签的所有内容到实体元数据

点更新元数据即可。

image.png
image.png

image.png


全文完!

j_0003.gif


这里有个苍穹开发讨论的QQ群,欢迎大家加入讨论开发问题:1002628306

入群问题答案:AbstractOperationServicePlugIn

赞 2