DigitalPlatform / dp2

Integrated Library System / 图书馆集成系统
http://digitalplatform.github.io/dp2
Apache License 2.0
105 stars 54 forks source link

操作日志与日志恢复测试计划 #1185

Open renyh opened 4 months ago

renyh commented 4 months ago

操作日志与日志恢复测试计划

以下操作要观察操作日志是否完整,然后日志恢复是否正常。

数据库

书目数据库创建,修改,删除 读者库创建,修改,删除 其它数据库的创建(例如预约到书/违约金/消息/出版者),修改,删除

数据库刷新:书目库,读者库

书目

新增,修改,删除

新增,修改,删除

读者

新增,修改,删除

流通业务

借,还(验证还),续借,

丢失

交费,撤消交费。

读者操作

预约:新增,删除,合并,拆分

续借

书评(馆员也可以操作) 新增,修改,删除,带图片

修改系统参数

opac/database opac/browseformats circulation/locationTypes circulation/callNumber circuodeValidation circulation/valueTables circulation/rightsTable

开馆日历

订购

新增,修改,删除

新增,修改,删除

对象

新增,修改,删除

针对大对象,会产生多个writeres日志。


恢复日志的特殊情况处理

  1. 遇到创建一条记录,但所属的数据库还不存在,会自动自动数据库(及相关配置数据库)。

  2. 各数据的change动作,如果发现没有new的记录,会将change语义转为new,创建这条记录。

  3. 各数据的delete动作,如果系统中没有对应数据,会不做处理,不报错。(todo确认)

  4. 写对象的日志writeres,如果发现元数据中没有file元素,会自动创建file元素。

  5. 写对象的日志writeres时,如果发现元数据没有,则没法继续写对象。是否在wirteres日志中存储元数据信息,讨论后觉得没太大必要,越界了,同时会导致日志文件过多。 6.在恢复一条创建下级记录的日志,如果发现这个记录的书目不存在,是否还有必须创建这条记录。讨论好,觉得还是有必要,系统是允许父亲不存在的,没有理由因为父亲不存在就不执行这条日志的恢复。两害相权取其轻。