A tour of every major capability in Ledger. Skip ahead with the index below, or scroll through.
Not a textarea with color. A code editor built from scratch in vanilla JavaScript.
The tokenizer recognizes 612 SQL constructs across keywords, functions, types, and constants. Each gets its own color in every theme. Strings, comments, hex literals, binary literals, session variables — all handled.
Autocomplete is two-pass and context-aware. Type a table alias and a dot, and you get its columns — not every column in the database. The system understands FROM, JOIN, INTO, and UPDATE clauses, then re-classifies identifiers throughout the query so aliases work backward as well as forward.
Click any cell, type, press Enter. AJAX save, green flash on success. The page doesn't reload. Your scroll position holds. Your filters hold.
Tab moves to the next cell. Long values auto-promote to a resizable textarea between 60 and 300 pixels tall. NULL is a checkbox for nullable columns.
The feature phpMyAdmin doesn't have. Type a value, get back every match across every table in the database — grouped by table, with matched columns highlighted.
Useful for tracing FK values, finding where an email is stored, locating orphans, or just asking "where the hell is this id?" without opening tables one by one.
Every table renders as a card with key icons, column types, and nullable indicators. Relationships use crow's foot notation — three-pronged fork at the FK end, double bars at the PK end.
Drag tables to reposition. Pan with empty-space drag. Zoom with scroll wheel. Auto-layout runs a force-directed physics simulation if you want to start fresh.
logs/er/. Reopen and everything is exactly where you left it.Most database tools wave at these. Ledger gives every one the same treatment as tables: full CRUD with syntax-highlighted definitions, skeleton templates for new objects, drop-then-recreate with rollback for edits.
event_scheduler = OFF and events exist. Easy to miss otherwise.A dedicated top-level Processes tab turns Ledger from a schema editor into a tool you keep open. It shows SHOW FULL PROCESSLIST with header stats, auto-refresh, and color coding so the things that need attention pop visually.
Every query you run is logged with its target database, execution time, result count, success/error state, and on failure the full PDO error message.
Create tables with a visual form and a live SQL preview that updates as you type. Edit columns inline. Manage indexes with composite-key support. Run maintenance from one panel.
ALTER TABLE CHANGE COLUMN with type, nullable, default, comment all editable.Import SQL or CSV with drag-and-drop. The SQL splitter handles backticks, doubled-quote escapes, hash comments, conditional /*! */, and DELIMITER directives — so stored procedure dumps from mysqldump import cleanly.
Export gives you a mode selector (Structure / Data / Both) and a style selector (Single-statement / phpMyAdmin-compatible). The phpMyAdmin format is byte-for-byte interchangeable with their dumps — useful when migrating between tools.
Security is built in from the first request, not bolted on. The installer enforces credential setup before anything else loads — there's no default admin/admin to forget about.
USE foo; DROP TABLE bar; is rejected as a write.config.php, includes/, logs/.Three steps. Drop the folder, run the installer, manage your databases.