返回

文章详情

一个零依赖、超轻量的SQLite数据库时间机器

Hacker News2026年8月9日 18:59

一个开源的超轻量级Web应用程序和CLI守护程序,旨在跟踪并瞬间将损坏或修改的SQLite数据库文件恢复到任何先前状态(例如,3分钟前),就像擦洗视频一样。 🇹🇷 土耳其语文档:有关土耳其语指南,请参见README.tr.md文件。 🚀 功能 ⚡ 零依赖:使用纯PHP 8+和Vanilla JS构建。不需要重型框架或npm包。 🌐 完整的国际化/多语言:翻译文件在lang/中完全解耦。可以从UI动态切换语言(例如,🇹🇷土耳其语,🇬🇧英语)。通过添加或更新lang/xx.json文件轻松贡献。 💾 SQLite WAL模式意识:无缝备份和恢复 .sqlite-wal和.sqlite-shm文件,对于运行PRAGMA journal_mode=WAL;的数据库。 🔍 可视化数据和表格差异查看器:在恢复之前,比较任何历史快照和您当前实时数据库之间的行数和表格更改(+3行在实时)。 📌 快照固定和标记:一键固定重要快照,以保护它们免受自动清理。 📥 一键快照导出:将任何历史数据库状态直接下载为.sqlite文件。 ⌨️ 键盘导航快捷键:使用左箭头(⬅️)和右箭头(➡️)键平滑导航时间线。 🔄 自动瞬时快照(监视守护程序):后台CLI脚本(watcher.php)监听database.sqlite中的修改,并自动创建带时间戳的快照(backups/1715000000_database.sqlite)。 🧹 自动清理:维护最多50个备份,清除较旧的未固定快照以防止磁盘杂乱。 📁 项目布局 time-travel/ ├── index.html # 时间控制台UI(Tailwind CSS + Vanilla JS + i18n引擎) ├── api.php # 快照列表、恢复、差异、导出和i18n API ├── watcher.php # CLI后台监听守护程序脚本(WAL和信号意识) ├── lang.php # 多语言(i18n)助手类 ├── lang/ # JSON语言文件目录 │ ├── tr.json # 土耳其语言文件 │ └── en.json # 英语语言文件 ├── database.sqlite # 目标SQLite数据库文件(自动创建) ├── backups/ # 带时间戳的备份目录(自动创建) ├── README.md # 主要英语文档 └── README.tr.md # 土耳其文档和指南 🌍 翻译指南:添加和更新语言文件 1. 添加新语言 在lang/中创建一个与ISO代码匹配的JSON文件(例如,lang/es.json,lang/de.json): { "code" : "es", "name" : "西班牙语", "flag" : "🇪🇸", "cli" : { ... }, "api" : { ... }, "ui" : { ... } } 2. 更新现有翻译 打开lang/*.json中的任何文件并编辑字符串。更改会立即反映在Web UI和CLI中,无需重启服务器。 💻 安装和使用 1. 启动监视守护程序(终端1) php watcher.php 要指定自定义语言或数据库文件: php watcher.php database.sqlite en 2. 启动本地Web服务器(终端2) php -S 127.0.0.1:8000 3. 打开Web界面 打开您的浏览器并导航到:http://127.0.0.1:8000 🧪 如何测试 打开Web界面。点击 "✍️ 添加测试数据(数据库写入)"。观察watcher.php的终端输出: [+] 创建快照:1715000000_database.sqlite 拖动时间线滑块或使用⬅️/➡️箭头键。点击"🔍 比较差异"以检查表行更改。点击"⚡ 恢复到此状态"以快速回滚您的数据库! 🔒 文件权限(Linux / Unix) chmod -R 775 . 📄 许可 本项目是根据MIT许可证开源的。

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡