如果您曾经执行过数据迁移,导致本地 SQLite 数据库损坏,或者执行过数据填充操作,导致精心整理的测试数据被清除,并且希望能够回滚到初始状态,那么 Tyro Checkpoint 正是为此类工作流程而设计的。 哈辛·海德尔 这个仅供开发者使用的 Laravel 包允许您创建 SQLite 数据库的命名快照,并立即恢复它们,而无需重新运行迁移或种子程序。
Tyro Checkpoint 会将 SQLite 数据库文件的完整副本存储在数据库之外。元数据(名称、时间戳、备注、锁定状态)会被跟踪到一个单独的目录中。
checkpoints.json
文件,因此恢复快照不会清除您的检查点历史记录。您可以将其视为本地数据库状态的 Git 提交。
安装
作曲家
要求
hasinhayder/tyro-checkpoint
--devphp
工匠
tyro-checkpoint:安装
安装命令会验证您的数据库配置并创建数据库。
storage/tyro-checkpoints/
快照存储目录。
创建和恢复检查点
创建检查点只需一条命令:
php
工匠
新手检查点:创建
[快照名称]
查看所有快照:
php
工匠
新手检查点:列表
准备回滚时:
php
工匠
tyro-checkpoint:恢复
[快照名称]
您可以按名称或 ID 进行恢复。恢复的检查点仍然可用,因此您可以在测试会话期间多次恢复同一快照,而无需重新创建它。
检查点管理
该软件包包含一些用于整理检查点的命令:
| 命令 | 描述 |
|---|---|
tyro-checkpoint:add-note [id] |
在检查点上附上一张纸条 |
tyro-checkpoint:lock [id] |
防止检查点被删除 |
tyro-checkpoint:unlock [id] |
移除锁定保护 |
tyro-checkpoint:delete [id] |
删除特定检查点 |
tyro-checkpoint:flush |
一次性删除所有已解锁的检查点 |
锁定功能对于保持干净的基线尤其有用——锁定它,然后……
tyro-checkpoint:flush
绝对不会碰它。
可选加密
对于涉及生产环境数据的开发工作流程,该软件包支持 AES-256 文件级加密。请先生成密钥:
php
工匠
tyro-checkpoint:生成密钥
将钥匙添加到您的
.env
文件另存为
TYRO_CHECKPOINT_ENCRYPTION_KEY
新的检查点将自动加密。
笔记: 如果丢失或轮换加密密钥,则使用旧密钥创建的任何检查点都将无法访问。
配置
要自定义存储路径,请发布配置文件:
php
工匠
tyro-checkpoint:publish-config
这将产生
config/tyro-checkpoint.php
您可以在此处更改快照目录并管理加密设置。
需要注意的几点
每个检查点都是数据库文件的完整副本,因此每次快照都会增加磁盘使用量。
flush
该命令有助于清理工作,但锁定的检查点必须手动删除。此外,这并非生产环境备份工具,而仅供本地开发使用。
您可以在以下位置找到源代码: hasinhayder/tyro-checkpoint 在 GitHub 上阅读 完整文档 在项目现场。





