Skip to content

sugarcraft/candy-query

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

candy-query

CandyQuery

CI codecov Packagist Version License PHP

demo

Terminal SQLite browser on the SugarCraft stack — port of jorgerojas26/lazysql, SQLite-only at v1.

composer require candycore/candy-query
candy-query path/to/db.sqlite

Keys

Key Action
Tab Switch pane (Tables → Rows → Query)
↑/↓ or j/k Move cursor in active list pane
Enter / Space Load the highlighted table into the rows pane
Ctrl+R Run the SQL in the query pane
Backspace Delete last character (query pane)
q / Esc Quit (except inside the query pane — q types)

Architecture

File Role
Database Thin PDO/SQLite wrapper. Throws RuntimeException on missing files; promotes PDO errors to exceptions for the App's catch arm.
Pane Enum for pane focus + next().
App (Model) Tables list, rows pane, in-progress SQL editor buffer, error string, status string. Pure-state.
Renderer Three rounded-border panes — tables, rows, query — with the focused pane getting a brighter accent.

The PDO connection is the only stateful dependency; tests use a :memory: SQLite to exercise the full transition surface (load tables, switch panes, run query, error handling) without fixture files.

Multi-driver (MySQL / Postgres / Mongo) is a planned follow-up — the current Database class is a SQLite-only concrete; promoting it to an interface is a one-class job once the second driver lands.

Test

composer install
vendor/bin/phpunit

About

Terminal SQLite browser — port of jorgerojas26/lazysql on the SugarCraft stack.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages