这个项目能做什么
sqlit 是一个用户友好的终端界面(TUI),用于操作 SQL 数据库,使用 Python 编写并基于 Textual 构建。它自称是“SQL 数据库界的 lazygit”:运行 `sqlit`,从界面中选择一个连接,即可开始查询,无需配置 CLI 或查阅外部文档。
支持的数据库包括 SQL Server、PostgreSQL、MySQL、MariaDB、SQLite、FirebirdSQL、Oracle、DuckDB、CockroachDB、ClickHouse、Snowflake、Databricks、Supabase、Cloudflare D1、Turso、Athena、BigQuery、Spanner、Redshift、IBM Db2、SAP HANA、Teradata、Exasol、Trino、Presto、Apache Flight SQL、Apache Impala、SurrealDB 和 osquery。其中许多数据库的驱动程序是可选的,可按需安装;sqlit 会检测缺失的驱动程序并显示相应的安装命令。
README 中描述的主要功能:
- 连接管理器:保存、列出、删除和切换连接;通过 URL 方案或特定于提供商的 CLI 标志进行连接;支持不保存的临时连接。
- Docker 发现:自动检测正在运行的数据库容器,按 Enter 键即可连接。
- 云 CLI 集成:通过 Azure、AWS 和 GCP CLI 浏览并连接到外部数据库。
- SSH 隧道:使用密码或密钥认证连接到远程数据库(需要 `ssh` 附加组件)。
- 凭据处理:连接详细信息存储在 `connections.json` 中,而密码在可用时存储在操作系统密钥环中;也可以通过 `--password-command` 从密钥管理器获取密码。
- 查询编辑器:语法高亮、可搜索的按连接历史记录、Vim 风格的模式编辑和移动,以及针对表、列和过程的 SQL 自动补全引擎。
- 结果:加载大型结果集、检查单元格、按内容过滤和模糊搜索;复制单元格、行或所有行。
- 资源管理器:浏览表、视图、过程、索引、触发器和序列。
- CLI 模式:从命令行运行查询,输出为 CSV 或 JSON,或从 SQL 脚本文件运行。
- 主题:Rose Pine、Tokyo Night、Nord 和 Gruvbox。
- 通过配置文件目录(`$XDG_CONFIG_HOME/sqlit/`,可用 `SQLIT_CONFIG_DIR` 覆盖)中的 `keymap.json` 自定义键绑定。
列出的安装选项包括 pipx(推荐)、uv、pip、Arch Linux AUR 和 Nix flake。`--mock=sqlite-demo` 标志允许在无真实数据库的情况下探索界面。
README 解释了其动机:避免使用 SSMS 等重量级 GUI 客户端或启动完整 IDE 来运行 SQL,而是旨在提供一个轻量级、以键盘为中心且易于上手的工具。它引用 lazygit 和 lazysql 作为灵感来源,并指出 sqlit 刻意专注于有限的一组任务并将其做好,而不是追求其他 SQL TUI 的功能广度。该项目采用 MIT 许可证。
评论
0 评分人数达到10人后显示
登录后参与讨论。