开始之前
- 导出相关群组内容和个人信息的权限。
- 源应用程序、导出格式和预期目的地的文档。
- 一个单独的测试目的地,其中包含传出通知和外部集成。
1. 确定包必须让您做什么。
在选择导出按钮之前写下预期结果。为离开的成员提供可读副本、迁移到另一个应用程序以及完全恢复现有服务需要不同的材料。一个导出可能很好地服务于第一个目的,而在另外两个目的上失败。
BookStack 明确区分了这一点:其内容导出和导入工具并非用于备份与恢复。可读的 HTML 或 PDF 副本很有用,但不应静默替换应用程序的恢复集。 BookStack 导出和导入内容.
对于一个假设的工作坊小组,初始目标并不高:另一位经授权的维护者能够阅读操作手册,并将一个代表性章节(包括其图表)导入到单独的测试实例中。
2. 记录格式和差距。
创建一个矩阵,描述你需要保留什么以及你将如何证明它。在检查目标位置之前,不要在单元格中写“完整”。
| 材料 | 候选输出 | 待解决的问题 |
|---|---|---|
| Wiki 页面 | 可读 HTML 加受支持的导入包 | 标题、链接和图表是否保留? |
| 附件 | 原始文件和清单 | 每个重要引用都能找到其文件吗? |
| 日历 | 受支持的日历交换文件 | 重复规则和时区是否按预期工作? |
| 成员资格和权限 | 受控角色映射说明 | 哪些访问规则需要手动重建? |
| 应用程序恢复 | 特定版本的备份集 | 还需要哪些配置和数据库? |
BookStack 记录了一种可移植的 ZIP 格式,其中包含内容数据、附件和图像,可以重新导入到 BookStack。这并不确立与其他 wiki 的兼容性,也不保证保留每个服务级别的设置。 BookStack 导出格式.
3. 为包提供人类起点。
添加一个简短的自述文件,包含源应用程序和版本、导出日期和时区、选定范围、导出者角色、文件列表和预期目标位置。使用描述性的文件夹名称,例如 readable-content, attachments y import-package。将凭据放在其他地方;仅为经授权的维护者编写经批准的检索流程。
假设的手册包含一个开场检查清单、一个机器维护页面、一个图表和一个链接的电子表格。其清单记录了这四个项目、它们的相对路径以及页面与其附件之间的关系。还要记录一个被刻意排除的受限页面,这样以后的缺失就不会被误认为是意外丢失。
校验和可以帮助在传输过程中识别未更改的文件。它不能证明导出完整、权限正确或可读。
4. 检查代表性样本。
在不依赖原应用程序活动会话的情况下打开可读副本。跟随一个链接,检查一个嵌入图像并打开链接的附件。查找仍然指回源服务的引用。记录哪些链接是有意指向外部的,哪些在迁移后会失效。
对于日历,选择一个包含重复事件、例外事件和具有相关时区的事件的样本。Nextcloud 记录日历导出和 iCalendar 兼容 .ics 导入。这确立了一条受支持的交换路径,但不能证明你的目标会保留每个选定的功能。 Nextcloud Calendar 导入和导出.
在遵循界面标签之前,请检查你已安装版本的文档;链接的滚动手册可能描述的是不同版本。
5. 导入到单独的受控目的地。
使用空的测试目标位置或明确批准的测试集合。保持工作服务及其原始数据不动。在启动已导入的应用程序之前,禁用传出通知并遏制外部连接;目的是评估数据,而不是向成员重新发送历史事件。
让第二位维护者在不依赖导出者未记录说明的情况下遵循自述文件。将预期项目与导入结果进行比较。验证图表、电子表格链接、页面结构和预期的成员权限。记录任何需要手动处理的角色映射。如果某种格式缺少所需功能,决定是重建它、选择另一种导出方法,还是在新服务旁边保留一个可读存档。
6. 使失败提供信息。
如果文件缺失,先比较导出范围和导出者权限,而不是反复生成更大的归档。如果链接中断,确定它们是引用旧服务还是包中缺失的文件。如果导入产生了意外的重复项,停止并检查其匹配规则,然后再导入同一个包。
对于工作坊示例,验收意味着第二位维护者可以阅读和编辑所选页面、检索每个包含的文件,并证明普通成员无法访问被排除的材料。记录每项结果及其审查者。“导入完成”只是一个观察结果。将未解决的差异与包一起列出,以便小组可以对其做出深思熟虑的决定。
7. 将导出和恢复保持在各自的通道中。
将已验收的包存储在独立于源服务的受控位置,并商定何时刷新它。在重要格式、权限或应用程序版本发生变化后再次审查。导出文件可能包含私人内容,即使目标位置只是临时的,因此也要为它们分配访问权限和保留决定。
单独保留应用程序恢复集:例如,BookStack 的恢复文档要求数据库和文件材料,而不仅仅是可读的文档导出。 BookStack 备份和恢复要求.
继续进行 恢复演练 用于服务恢复、 存储工作表 用于导出工作空间以及 服务清单 用于依赖项。可移植性需要用你的包来证明,而不是从文件扩展名来假设。
本说明背后的文档
使用你实际运行的版本文档。这些示例是规划材料,不是在一台 Hoszen VPS 上测试的记录。