Home Business & Finance A zero-dependency, ultra-lightweight database time...
Business & Finance

A zero-dependency, ultra-lightweight database time machine for SQLite

Key Points

An open-source, ultra-lightweight web application and CLI daemon designed to track and instantly rewind a corrupted or modified SQLite database file back to any previous state (e.g. 3 minutes ago) during local development — just like scrubbing a video. 🇹🇷 Türkçe Dokümantasyon: Türkçe rehber için lütfen README.tr.md dosyasına bakın.

An open-source, ultra-lightweight web application and CLI daemon designed to track and instantly rewind a corrupted or modified SQLite database file back to any previous state (e.g. 3 minutes ago) during local development — just like scrubbing a video. 🇹🇷 Türkçe Dokümantasyon: Türkçe rehber için lütfen README.tr.md dosyasına bakın. - ⚡ Zero Dependencies: Built with pure PHP 8+ and Vanilla JS. Requires no heavy frameworks or npm packages. - 🌐 Full i18n / Multi-Language: Translation files are completely decoupled in lang/ . Switch languages dynamically from the UI (e.g., 🇹🇷 Turkish, 🇬🇧 English). Easily contribute by adding or updatinglang/xx.json files. - 💾 SQLite WAL Mode Aware: Seamlessly backs up and restores .sqlite-wal and.sqlite-shm files for databases runningPRAGMA journal_mode=WAL; . - 🔍 Visual Data & Table Diff Viewer: Compare row counts and table changes ( +3 rows in live ) between any historic snapshot and your current live database before restoring. - 📌 Snapshot Pinning & Tagging: Pin important snapshots with one click to protect them from auto-cleanup. - 📥 One-Click Snapshot Export: Download any historic database state directly as a .sqlite file. - ⌨️ Keyboard Navigation Shortcuts: Navigate through the timeline smoothly using Left Arrow (⬅️) and Right Arrow (➡️) keys. - 🔄 Automatic Instant Snapshots (Watcher Daemon): Background CLI script ( watcher.php ) listens for modifications indatabase.sqlite and automatically creates timestamped snapshots (backups/1715000000_database.sqlite ). - 🧹 Automatic Cleanup: Maintains up to 50 backups, purging older unpinned snapshots to prevent disk clutter. time-travel/ ├── index.html # Chrono Console UI (Tailwind CSS + Vanilla JS + i18n Engine) ├── api.php # Snapshot listing, restoration, diff, export, and i18n API ├── watcher.php # CLI background listener daemon script (WAL & signal aware) ├── lang.php # Multi-language (i18n) helper class ├── lang/ # JSON language files directory │ ├── tr.json # Turkish language file │ └── en.json # English language file ├── database.sqlite # Target SQLite database file (created automatically) ├── backups/ # Timestamped backups directory (created automatically) ├── README.md # Primary English documentation └── README.tr.md # Turkish documentation & guide Create a JSON file inside lang/ matching the ISO code (e.g., lang/es.json , lang/de.json ): { "code": "es", "name": "Español", "flag": "🇪🇸", "cli": { ... }, "api": { ... }, "ui": { ... } } Open any file in lang/*.json and edit strings. Changes reflect immediately on the Web UI and CLI without restarting the server. php watcher.php To specify custom language or database file: php watcher.php database.sqlite en php -S 127.0.0.1:8000 Open your browser and navigate to: http://127.0.0.1:8000 - Open the web interface. - Click "✍️ Add Test Data (DB Write)". - Observe terminal output from watcher.php :[+] Created snapshot: 1715000000_database.sqlite - Drag the timeline slider or use ⬅️ / ➡️ arrow keys. - Click "🔍 Compare Diff" to inspect table row changes. - Click "⚡ Restore To This State" to rewind your database! chmod -R 775 . This project is open-source under the MIT license.
CLI (ORG) SQLite (ORG) Türkçe (ORG) lütfen README.tr.md (ORG) dosyasına bakın (PERSON) UI (ORG) Turkish (ORG) WAL (ORG) Visual Data & Table (ORG) Snapshot Pinning & Tagging: Pin (ORG) .sqlite (ORG) Keyboard Navigation Shortcuts: Navigate (EVENT) Left Arrow (LOCATION) Chrono (ORG) WAL & (ORG)
Originally published by Hacker News Read original →