跳转到正文

快照

快照会捕获沙盒的一个恢复点。

命令行
wp rudel snapshot alpha-3be7 --name=before-test

恢复快照:

命令行
wp rudel restore alpha-3be7 --snapshot=before-test

restore会请求确认;--force会跳过提示。快照名称最多包含 64 个字母、数字、点、短横线或下划线,并且必须以字母或数字开头。

快照用于恢复沙盒,不用于确定运行时身份。环境记录仍是沙盒的事实来源。

快照包含的内容

  • 所有带有沙盒前缀的表(包括用户)都会在同一数据库中复制到{sandbox_prefix}snap_{hash}_下,例如wp_b65338d_snap_3ba676_options
  • 沙盒主题目录会复制到沙盒目录中的snapshots/{name}/themes
  • snapshots/{name}/snapshot.json和snapshots/{name}/db_snapshot.json中的元数据

因此,创建快照需要在主机数据库中完整复制沙盒表,并复制主题文件。

快照不包含的内容

  • 主机WordPress核心文件
  • 共享插件文件
  • 共享上传文件

还原

恢复操作会删除沙盒表(保留快照表),将快照表复制回来,并用保存的副本替换沙盒主题目录。

默认情况下,Rudel会先将当前状态保存为名为pre-restore-{timestamp}-{hash}的快照,以便撤销恢复操作。在rudel_config中将auto_snapshot_before_restore设为0即可关闭此功能。

列出和移除

没有用于列出或删除快照的CLI命令。在PHP中,Rudel::snapshots( $id )会按从新到旧的顺序列出快照。销毁沙盒时会删除快照表;在此之前它们会一直保留,包括自动创建的pre-restore-*快照(问题 #5)。