De Time-Travel SQLite Debugger is een ultra-lichtgewicht webapplicatie en CLI-daemon die ontwikkelaars in staat stelt om SQLite-databasebestanden lokaal terug te spoelen naar eerdere versies. De tool functioneert als een visuele scrubber, waardoor gebruikers wijzigingen kunnen ongedaan maken alsof ze een video terugspoelen.
Belangrijkste kenmerken:
- Watcher Daemon: Een CLI-script (
watcher.php) dat automatisch snapshots maakt van het databasebestand bij elke wijziging.
- Visuele Analyse: Bevat een diff-viewer om het aantal rijen en tabelwijzigingen tussen snapshots en de live database te vergelijken.
- Technische stack: Gebouwd met pure PHP 8+ en Vanilla JS, zonder externe frameworks of npm-pakketten.
- Extra functionaliteiten: Ondersteuning voor SQLite WAL-modus, meertaligheid (i18n), het vastzetten van belangrijke snapshots en directe export naar
.sqlite-bestanden.
Waarschuwing: Het hulpmiddel is strikt bedoeld voor lokale debugging. Vanwege het gebruik van bestandskopieën mag het niet worden ingezet in productieomgevingen, omdat dit kan leiden tot gegevenscorruptie bij actieve transacties.
Time-Travel SQLite Debugger (Database Tijdmachine)
Belangrijke opmerking over Architectuur & SQLite
Strikt voor lokale ontwikkeling: Dit hulpmiddel is ontworpen als een plug-and-play visuele scrubber zonder afhankelijkheden voor debugging door één gebruiker. Het maakt gebruik van een raw POSIX-bestandskopie/hernoemingsmechanisme om direct "tijdreizen" mogelijk te maken, zonder dat specifieke PHP-extensies of complexe .backup-commando's nodig zijn.
Omdat een lokale debugging-omgeving geen gelijktijdige schrijfacties, race-condities of actief verkeer ervaart, is deze methode van bestandskopieën hier volkomen veilig.
Gebruik dit hulpmiddel of de logica voor het kopiëren van bestanden niet in een productieomgeving, vooral niet als uw SQLite-database gebruikmaakt van WAL (Write-Ahead Logging) modus, aangezien het kopiëren van actieve databasebestanden tijdens actieve transacties kan leiden tot gegevenscorruptie.
Functies
- Geen afhankelijkheden: Gebouwd met pure PHP 8+ en Vanilla JS. Vereist geen zware frameworks of npm-pakketten.
- Volledige i18n / Meertaligheid: Vertalingsbestanden zijn volledig ontkoppeld in
lang/. Schakel dynamisch tussen talen via de gebruikersinterface (bijv. 🇹🇷 Turks, 🇬🇧 Engels). Draag eenvoudig bij door lang/xx.json-bestanden toe te voegen of bij te werken.
- SQLite WAL-modus ondersteuning: Maakt naadloos back-ups en herstelt
.sqlite-wal en .sqlite-shm bestanden voor databases die draaien met PRAGMA journal_mode=WAL;.
- Visuele data- en tabeldiff-viewer: Vergelijk het aantal rijen en tabelwijzigingen (bijv. +3 rijen in live) tussen een willekeurig historisch snapshot en uw huidige live database voordat u herstelt.
- Snapshots vastzetten en taggen: Zet belangrijke snapshots met één klik vast om te voorkomen dat ze door de automatische opschoning worden verwijderd.
- Export van snapshots met één klik: Download elke historische staat van de database direct als een
.sqlite-bestand.
- Sneltoetsen voor toetsenbordnavigatie: Navigeer soepel door de tijdlijn met de linkerpijl (�
️) en rechterpijl (➡️).
- Automatische instant snapshots (Watcher Daemon): Een CLI-script op de achtergrond (
watcher.php) monitort wijzigingen in database.sqlite en maakt automatisch snapshots met een tijdstempel (bijv. backups/1715000000_database.sqlite).
- Automatische opschoning: Beheert maximaal 50 back-ups en verwijdert oudere, niet-vastgezette snapshots om schijfruimte te besparen.
Projectstructuur
time-travel/
├── index.html # Chrono Console UI (Tailwind CSS + Vanilla JS + i18n Engine)
├── api.php # API voor snapshot-lijsten, herstel, diff, export en i18n
├── watcher.php # CLI background listener daemon script (WAL & signal aware)
├── lang.php # Hulpklas voor meertaligheid (i18n)
├── lang/ # Directory voor JSON-taalbestanden
│ ├── tr.json # Turks taalbestand
│ └── en.json # Engels taalbestand
├── database.sqlite # Doel-SQLite databasebestand (wordt automatisch aangemaakt)
├── backups/ # Directory voor getimede back-ups (wordt automatisch aangemaakt)
├── README.md # Primaire Engelse documentatie
└── README.tr.md # Turkse documentatie & gids
Handleiding Vertalingen: Taalbestanden toevoegen en bijwerken
1. Een nieuwe taal toevoegen
Maak een JSON-bestand aan in lang/ dat overeenkomt met de ISO-code (bijv. lang/es.json, lang/de.json):
{
"code": "es",
"name": "Español",
"flag": "🇪🇸",
"cli": { ... },
"api": { ... },
"ui": { ... }
}
2. Bestaande vertalingen bijwerken
Open een willekeurig bestand in lang/*.json en bewerk de teksten. Wijzigingen zijn direct zichtbaar in de Web UI en CLI zonder dat de server herstart hoeft te worden.
Installatie & Gebruik
- Start de Watcher Daemon (Terminal 1)
``bash php watcher.php ` Om een aangepaste taal of databasebestand op te geven: `bash php watcher.php database.sqlite en ``
- Start lokale webserver (Terminal 2)
``bash php -S 127.0.0.1:8000 ``
- Open de webinterface
Open uw browser en ga naar: http://127.0.0.1:8000
Hoe te testen
- Open de webinterface.
- Klik op "✍️ Add Test Data (DB Write)".
- Observeer de terminaluitvoer van
watcher.php:
[+] Created snapshot: 1715000000_database.sqlite
- Sleep de tijdlijn-slider of gebruik de $\leftarrow$ / → pijltjestoetsen.
- Klik op "🔍 Compare Diff" om wijzigingen in het aantal rijen van tabellen te inspecteren.
- Klik op "⚡ Restore To This State" om uw database terug te draaien!
Bestandsrechten (Linux / Unix)
chmod -R 775 .
Licentie
Dit project is open-source onder de MIT-licentie.
Time-Travel SQLite Debugger (Database Tijdmachine)
Belangrijke opmerking over Architectuur & SQLite
Strikt voor lokale ontwikkeling: Dit hulpmiddel is ontworpen als een plug-and-play visuele scrubber zonder afhankelijkheden voor debugging door één gebruiker. Het maakt gebruik van een raw POSIX-bestandskopie/hernoemingsmechanisme om direct "tijdreizen" mogelijk te maken, zonder dat specifieke PHP-extensies of complexe .backup-commando's nodig zijn.
Omdat een lokale debugging-omgeving geen gelijktijdige schrijfacties, race-condities of actief verkeer ervaart, is deze methode van bestandskopieën hier volkomen veilig.
Gebruik dit hulpmiddel of de logica voor het kopiëren van bestanden niet in een productieomgeving, vooral niet als uw SQLite-database gebruikmaakt van WAL (Write-Ahead Logging) modus, aangezien het kopiëren van actieve databasebestanden tijdens actieve transacties kan leiden tot gegevenscorruptie.
Functies
- Geen afhankelijkheden: Gebouwd met pure PHP 8+ en Vanilla JS. Vereist geen zware frameworks of npm-pakketten.
- Volledige i18n / Meertaligheid: Vertalingsbestanden zijn volledig ontkoppeld in
lang/. Schakel dynamisch tussen talen via de gebruikersinterface (bijv. 🇹🇷 Turks, 🇬🇧 Engels). Draag eenvoudig bij door lang/xx.json-bestanden toe te voegen of bij te werken.
- SQLite WAL-modus ondersteuning: Maakt naadloos back-ups en herstelt
.sqlite-wal en .sqlite-shm bestanden voor databases die draaien met PRAGMA journal_mode=WAL;.
- Visuele data- en tabeldiff-viewer: Vergelijk het aantal rijen en tabelwijzigingen (bijv. +3 rijen in live) tussen een willekeurig historisch snapshot en uw huidige live database voordat u herstelt.
- Snapshots vastzetten en taggen: Zet belangrijke snapshots met één klik vast om te voorkomen dat ze door de automatische opschoning worden verwijderd.
- Export van snapshots met één klik: Download elke historische staat van de database direct als een
.sqlite-bestand.
- Sneltoetsen voor toetsenbordnavigatie: Navigeer soepel door de tijdlijn met de linkerpijl (�
️) en rechterpijl (➡️).
- Automatische instant snapshots (Watcher Daemon): Een CLI-script op de achtergrond (
watcher.php) monitort wijzigingen in database.sqlite en maakt automatisch snapshots met een tijdstempel (bijv. backups/1715000000_database.sqlite).
- Automatische opschoning: Beheert maximaal 50 back-ups en verwijdert oudere, niet-vastgezette snapshots om schijfruimte te besparen.
Projectstructuur
time-travel/
├── index.html # Chrono Console UI (Tailwind CSS + Vanilla JS + i18n Engine)
├── api.php # API voor snapshot-lijsten, herstel, diff, export en i18n
├── watcher.php # CLI background listener daemon script (WAL & signal aware)
├── lang.php # Hulpklas voor meertaligheid (i18n)
├── lang/ # Directory voor JSON-taalbestanden
│ ├── tr.json # Turks taalbestand
│ └── en.json # Engels taalbestand
├── database.sqlite # Doel-SQLite databasebestand (wordt automatisch aangemaakt)
├── backups/ # Directory voor getimede back-ups (wordt automatisch aangemaakt)
├── README.md # Primaire Engelse documentatie
└── README.tr.md # Turkse documentatie & gids
Handleiding Vertalingen: Taalbestanden toevoegen en bijwerken
1. Een nieuwe taal toevoegen
Maak een JSON-bestand aan in lang/ dat overeenkomt met de ISO-code (bijv. lang/es.json, lang/de.json):
{
"code": "es",
"name": "Español",
"flag": "🇪🇸",
"cli": { ... },
"api": { ... },
"ui": { ... }
}
2. Bestaande vertalingen bijwerken
Open een willekeurig bestand in lang/*.json en bewerk de teksten. Wijzigingen zijn direct zichtbaar in de Web UI en CLI zonder dat de server herstart hoeft te worden.
Installatie & Gebruik
- Start de Watcher Daemon (Terminal 1)
``bash php watcher.php ` Om een aangepaste taal of databasebestand op te geven: `bash php watcher.php database.sqlite en ``
- Start lokale webserver (Terminal 2)
``bash php -S 127.0.0.1:8000 ``
- Open de webinterface
Open uw browser en ga naar: http://127.0.0.1:8000
Hoe te testen
- Open de webinterface.
- Klik op "✍️ Add Test Data (DB Write)".
- Observeer de terminaluitvoer van
watcher.php:
[+] Created snapshot: 1715000000_database.sqlite
- Sleep de tijdlijn-slider of gebruik de $\leftarrow$ / → pijltjestoetsen.
- Klik op "🔍 Compare Diff" om wijzigingen in het aantal rijen van tabellen te inspecteren.
- Klik op "⚡ Restore To This State" om uw database terug te draaien!
Bestandsrechten (Linux / Unix)
chmod -R 775 .
Licentie
Dit project is open-source onder de MIT-licentie.