模式¶
BackupService 使用两套 JSON 模式。一个模式用于插入压缩备份存档的 backup-manifest.json
文件,另一个用于与压缩备份存档并存的 JSON 块。
这两个模式之间都有类似的 meta
属性。此属性用于备份的元数据(包括有关备份时间以及创建备份的机器/构建的信息)。不可否认,这里存在一些冗余,因为这些相同的元数据存在于 JSON 块和备份清单中,但这种冗余有助于防止意外(或有意)损坏备份。
这种冗余的缺点是必须在备份清单和 JSON 块之间同步维护元数据模式。
这是通过在备份清单模式中分别定义元数据结构,并在备份清单模式和 JSON 块模式中_引用_该结构来完成的。
这意味着这两个模式之间的版本号也必须同步维护。这意味着在 ArchiveUtils
内部定义了一个全局 SCHEMA_VERSION
,它表示备份清单和 JSON 块的当前模式版本。
因此,这意味着当您开发新版本的某个模式时,即使第二个模式没有更改,您也必须使用相同的版本号为另一个模式生成新的模式。