LAZYSQL
A cross-platform TUI database management tool written in Go.
Table of Contents
-
About The Project
- Features
-
Getting Started
- Usage
- Keybindings
- Roadmap
- Contributing
- License
- Contact
- Acknowledgments
About The Project
This project is heavily inspired by Lazygit, which i think is the best TUI client for Git.
I wanted to have a tool like that, but for SQL. I didn't find one that fits my needs so i created one myself.
I live in the terminal, so if you are like me, this tool can become handy for you too.
This is my first Open Source project, also, this is my first Golang project. I am not a brilliant programmer. I am just a typical Javascript developer that wanted to learn a new language, i also wanted a TUI SQL Client, so, white and bottled.
This project is in ALPHA stage, please feel free to critize my spaghetti code.
I use Lazysql daily in my ful time job as a fullstack javascript developer in it's current (buggy xD) state. So, the plan is to improve and fix my little boy as a side project in my free time.
Built With
Features
- Cross-platform (macOS, Windows, Linux)
- VIM Keybindings
- Can manage multiple connections (Backspace)
- Tabs
- SQL Editor (CTRL + e)
Getting Started
Installation
Binary Releases
For Windows, Mac OS or Linux, you can download a binary release here
Install with go package manager
go install github.com/jorgerojas26/lazysql@latest
Install from package manager
Archlinux users can install it from the AUR with:
paru -S lazysql
or
yay -S lazysql
or install it manual with:
git clone https://aur.archlinux.org/lazysql.git
cd lazysql
makepkg -si
(back to top)
Usage
$ lazysql
(back to top)
Support
- MySQL
- Postgres
- SQLite
- MSSQL
- MongoDB
Support for multiple RDBMS is a work in progress.
Keybindings
Global
Key |
Action |
q |
Quit |
CTRL + e |
Open SQL editor |
Backspace |
Return to connection selection |
Table
Key |
Action |
c |
Edit table cell |
d |
Delete row |
o |
Add row |
/ |
Focus the filter input or SQL editor |
CTRL + s |
Commit changes |
> |
Next page |
< |
Previous page |
K |
Sort ASC |
J |
Sort DESC |
H |
Focus tree panel |
[ |
Focus previous tab |
] |
Focus next tab |
X |
Close current tab |
Tree
Key |
Action |
L |
Focus table panel |
G |
Focus last database tree node |
g |
Focus first database tree node |
SQL Editor
Key |
Action |
CTRL + R |
Run the SQL statement |
Example connection URLs
postgres://user:pass@localhost/dbname
pg://user:pass@localhost/dbname?sslmode=disable
mysql://user:pass@localhost/dbname
mysql:/var/run/mysqld/mysqld.sock
sqlserver://user:[email protected]/dbname
mssql://user:[email protected]/instance/dbname
ms://user:[email protected]:port/instance/dbname?keepAlive=10
oracle://user:[email protected]/sid
sap://user:pass@localhost/dbname
sqlite:/path/to/file.db
file:myfile.sqlite3?loc=auto
odbc+postgres://user:pass@localhost:port/dbname?option1=
Roadmap
- Support for NOSQL databases
- Columns and indexes creation through TUI
- Table tree input filter
- Custom keybindings
- Show keybindings on a modal
- Rewrite row
create
, update
and delete
logic
See the open issues for a full list of proposed features (and known issues).
(back to top)
Contributing
Contributions, issues and pull requests are welcome!
(back to top)
License
Distributed under the MIT License. See LICENSE.txt
for more information.
(back to top)
Jorge Rojas - Linkedin - [email protected]
(back to top)
Alternatives
(back to top)