Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions DOCKERHUB.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,14 +107,15 @@ The network route is the one to prefer for a real deployment: put Studio and its

## Supported databases

Sixteen external engines share one interface, and three of them are read-only because their own SQL is. The table below has seventeen rows: the seventeenth is the embedded LibreDB store, which ships inside the image rather than being a server you connect out to.
Seventeen external engines share one interface, and three of them are read-only because their own SQL is. The table below has eighteen rows: the eighteenth is the embedded LibreDB store, which ships inside the image rather than being a server you connect out to.

| Database | Driver | Highlights |
| :--- | :--- | :--- |
| **PostgreSQL** | `pg` | EXPLAIN plans, transactions, query cancellation, SSL/TLS, SSH tunnel |
| **MySQL** | `mysql2` | EXPLAIN plans, transactions, `KILL QUERY`, SSL/TLS, SSH tunnel |
| **Oracle** | `oracledb` (thin) | `FETCH FIRST` pagination, `V$` monitoring, `ANALYZE`, transactions |
| **SQL Server** | `mssql` | `OFFSET FETCH`, `sys.dm_*` DMVs, `DBCC CHECKDB`, Azure SQL auto-detect |
| **IBM Db2 LUW** | `ibm_db` (a native addon; installs the IBM CLI driver) | SQL IDE over the DRDA protocol, `FETCH FIRST` / `OFFSET FETCH` pagination, `SYSCAT.*` catalog browser, `RUNSTATS` and `REORG TABLE` maintenance. EXPLAIN and the interactive-transaction toolbar are not wired yet |
| **SQLite** | `bun:sqlite` / `node:sqlite` | File-based or in-memory databases; the driver follows the runtime, with a `LIBREDB_SQLITE_DRIVER` override |
| **libSQL** | none — HTTP | Full SQL IDE over the Hrana protocol against a libSQL server or Turso Cloud; SQLite's dialect across a network, with real per-table bytes from `dbstat` and an auth token instead of a password |
| **DuckDB** | `@duckdb/node-api` (a native N-API addon) | Full SQL IDE against a local DuckDB file or `:memory:` on the server this image runs on; `EXPLAIN (FORMAT JSON)` plan trees, `duckdb_*` catalog introspection, real per-table bytes from `pragma_storage_info` block allocation, and cancellation through the driver's `interrupt()`. `VACUUM`, `ANALYZE` and `CHECKPOINT` only, and no slow-query or session panel, because DuckDB publishes neither. One operating-system process may hold the file, refused in read-only mode too |
Expand All @@ -133,7 +134,7 @@ Sixteen external engines share one interface, and three of them are read-only be

### Engines with no provider of their own

Twenty-six further engines speak the wire protocol of one of the sixteen drivers above, so they connect through it unchanged: pick that driver in the connection dialog. The table has twenty-two rows rather than twenty-six because engines that behave identically share a row; all twenty-six are named in it. Every one of them was measured against a real instance rather than assumed, and how much of the product worked is recorded per engine.
Twenty-six further engines speak the wire protocol of one of the seventeen drivers above, so they connect through it unchanged: pick that driver in the connection dialog. The table has twenty-two rows rather than twenty-six because engines that behave identically share a row; all twenty-six are named in it. Every one of them was measured against a real instance rather than assumed, and how much of the product worked is recorded per engine.

| Engine | Connect as | Support |
| :--- | :--- | :--- |
Expand Down
7 changes: 4 additions & 3 deletions README.md

Large diffs are not rendered by default.

5 changes: 3 additions & 2 deletions README_es.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,9 +85,9 @@ Tomada en serio, esa frase deja de ser una preferencia y se vuelve una especific

## Capacidades principales

### Dieciséis motores, una sola interfaz
### Diecisiete motores, una sola interfaz

PostgreSQL · MySQL · Oracle · SQL Server · SQLite · libSQL · DuckDB · MongoDB · Redis · Couchbase · ClickHouse · Apache Druid · Elasticsearch · OpenSearch · Apache Trino · Apache Cassandra
PostgreSQL · MySQL · Oracle · SQL Server · IBM Db2 LUW · SQLite · libSQL · DuckDB · MongoDB · Redis · Couchbase · ClickHouse · Apache Druid · Elasticsearch · OpenSearch · Apache Trino · Apache Cassandra

Todos los motores SQL comparten el mismo explorador de esquemas, los diagramas ER, la comparación de esquemas y los paneles de monitoreo. MongoDB y Redis no son motores SQL: no tienen diagrama ER ni comparación de esquemas. Druid, Elasticsearch, OpenSearch y Trino son doblemente excepcionales: sus interfaces SQL sobre HTTP no tienen una forma de URI que este build sepa interpretar, así que se configuran por host y puerto, y las migraciones que se generan explican la limitación en lugar de inventar DDL para un motor cuyo SQL no tiene sentencias de cambio de columna. Lo mismo pasa con las colecciones sin esquema de Couchbase. El diagrama ER de los clústeres de búsqueda tiene cajas pero no líneas: los índices no declaran claves foráneas, y en el modelo del motor no hay ninguna que declarar.

Expand All @@ -97,6 +97,7 @@ Todos los motores SQL comparten el mismo explorador de esquemas, los diagramas E
| **MySQL** | `mysql2` | IDE SQL completo, EXPLAIN, transacciones, cancelación de consultas (`KILL QUERY`) |
| **Oracle** | `oracledb` (modo Thin) | IDE SQL completo, paginación con `FETCH FIRST N ROWS`, vistas de monitoreo `V$`, `ANALYZE TABLE`, `ALTER INDEX REBUILD`, transacciones |
| **SQL Server** | `mssql` (tedious) | IDE SQL completo, paginación con `TOP N` / `OFFSET FETCH`, DMV `sys.dm_*`, `UPDATE STATISTICS`, `DBCC CHECKDB`, transacciones, detección automática de Azure SQL |
| **IBM Db2 LUW** | `ibm_db` (complemento nativo; su instalación descarga el driver CLI de IBM) | IDE SQL sobre el protocolo DRDA, paginación con `FETCH FIRST` / `OFFSET FETCH`, exploración del catálogo `SYSCAT.*`, mantenimiento con `RUNSTATS` y `REORG TABLE`. EXPLAIN y la barra de transacciones interactivas aún no están conectados |
| **SQLite** | `bun:sqlite` / `node:sqlite` (según el runtime) | IDE SQL completo, sobre archivo o en memoria |
| **libSQL** | Sin driver, HTTP puro (protocolo Hrana, `POST /v2/pipeline`, puerto 8080) | IDE SQL completo. El mismo type-id conecta tanto a un servidor libSQL propio (`sqld`) como a Turso Cloud. Es el dialecto de SQLite a través de la red, y con `dbstat` da el tamaño real en bytes de tablas e índices. La credencial es un auth token, no una contraseña. Solo hay dos operaciones de mantenimiento, Reindex y verificación de integridad: `VACUUM`, `ANALYZE` y `PRAGMA optimize` los rechaza el servidor |
| **DuckDB** | `@duckdb/node-api` (complemento nativo N-API, unos 68 MB por plataforma) | IDE SQL completo sobre archivos DuckDB locales o `:memory:`, ejecutando en el mismo servidor que la aplicación. Árbol de plan físico con `EXPLAIN (FORMAT JSON)`, introspección del catálogo `duckdb_*`, tamaño real por tabla a partir de la asignación de bloques de `pragma_storage_info`, y cancelación de consultas mediante el `interrupt()` del propio driver. Tres operaciones de mantenimiento: `VACUUM`, `ANALYZE` y `CHECKPOINT`. Acá `REINDEX` es un error de sintaxis, y `PRAGMA integrity_check` y `PRAGMA optimize` no existen, así que no se ofrecen. No hay log de consultas lentas ni lista de sesiones: DuckDB no expone ninguna de las dos, así que esos paneles lo dicen en lugar de mostrar 0. Un archivo de base solo admite un proceso del sistema operativo (incluso en modo lectura), así que una segunda instancia de Studio no puede abrir el archivo que ya tiene abierto la primera |
Expand Down
5 changes: 3 additions & 2 deletions README_ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,9 +84,9 @@ LibreDB Studioは逆向きです。**データをツールのところへ持っ

## 主な機能

### 16のエンジン、1つのインターフェース
### 17のエンジン、1つのインターフェース

PostgreSQL · MySQL · Oracle · SQL Server · SQLite · libSQL · DuckDB · MongoDB · Redis · Couchbase · ClickHouse · Apache Druid · Elasticsearch · OpenSearch · Apache Trino · Apache Cassandra
PostgreSQL · MySQL · Oracle · SQL Server · IBM Db2 LUW · SQLite · libSQL · DuckDB · MongoDB · Redis · Couchbase · ClickHouse · Apache Druid · Elasticsearch · OpenSearch · Apache Trino · Apache Cassandra

スキーマエクスプローラ、ER図、スキーマ差分、モニタリングは全SQLエンジンで共通です。MongoDBとRedisはSQLエンジンではないため、ER図とスキーマ差分はありません。Druid、Elasticsearch、OpenSearch、TrinoはこのビルドがパースできるURI形式を持たないためhostとportで設定する二重の例外で、生成されるマイグレーションもDDLを出力せず制約を明示します(Couchbaseのスキーマレスなコレクションも同様)。検索クラスタのER図は箱だけで線がありません。インデックスは外部キーを宣言せず、エンジンのモデルにも宣言できる外部キーが存在しないためです。

Expand All @@ -96,6 +96,7 @@ PostgreSQL · MySQL · Oracle · SQL Server · SQLite · libSQL · DuckDB · Mon
| **MySQL** | `mysql2` | フルSQL IDE、EXPLAIN、トランザクション、クエリキャンセル(`KILL QUERY`) |
| **Oracle** | `oracledb`(Thinモード) | フルSQL IDE、`FETCH FIRST N ROWS`、`V$`監視ビュー、`ANALYZE TABLE`、`ALTER INDEX REBUILD`、トランザクション |
| **SQL Server** | `mssql` (tedious) | フルSQL IDE、`TOP N` / `OFFSET FETCH`、`sys.dm_*` DMV、`UPDATE STATISTICS`、`DBCC CHECKDB`、トランザクション、Azure SQL自動判別 |
| **IBM Db2 LUW** | `ibm_db`(ネイティブアドオン、インストール時にIBM CLIドライバを取得) | DRDAプロトコル上のSQL IDE、`FETCH FIRST` / `OFFSET FETCH`、`SYSCAT.*` カタログ参照、`RUNSTATS` と `REORG TABLE` のメンテナンス。EXPLAINと対話型トランザクションツールバーは未接続 |
| **SQLite** | `bun:sqlite` / `node:sqlite`(実行時選択) | フルSQL IDE、ファイル型・インメモリ型 |
| **libSQL** | ドライバなし、HTTPのみ(Hranaプロトコル、`POST /v2/pipeline`、8080) | フルSQL IDE。自前運用のlibSQLサーバー(`sqld`)とTurso Cloudの両方に同じtype-idで接続します。ネットワーク越しのSQLite方言で、`dbstat`による実測のテーブル・インデックスサイズが読めます。認証情報はパスワードではなくauthトークンです。メンテナンスはReindexと整合性チェックのみ。`VACUUM`、`ANALYZE`、`PRAGMA optimize`はサーバー側が拒否します |
| **DuckDB** | `@duckdb/node-api`(ネイティブN-APIアドオン、プラットフォームごとに約68MBのバインディング) | アプリが動作するサーバ上のローカルDuckDBファイル、または`:memory:`に対するフルSQL IDE。`EXPLAIN (FORMAT JSON)`による物理プランツリー、`duckdb_*`カタログの自省、`pragma_storage_info`のブロック割り当てから得られる実際のテーブル別バイト数、ドライバ自身の`interrupt()`によるクエリキャンセル。メンテナンス操作は`VACUUM`・`ANALYZE`・`CHECKPOINT`の3つです。`REINDEX`はこのエンジンではパースエラーであり、`PRAGMA integrity_check`も`PRAGMA optimize`も存在しないため、それらの操作は提供しません。スロークエリログもセッション一覧もありません。DuckDBはどちらも公開していないため、これらのパネルは0を表示するのではなくその旨を伝えます。データベースファイルを開けるOSプロセスは1つだけで、読み取り専用モードでも2つ目は拒否されるため、このインスタンスが保持しているファイルを別のStudioインスタンスが開くことはできません |
Expand Down
5 changes: 3 additions & 2 deletions README_zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,9 @@ LibreDB Studio 走另一条路:**工具去找数据,而不是把数据搬来

## 核心能力

### 十六种引擎,一个界面
### 十七种引擎,一个界面

PostgreSQL · MySQL · Oracle · SQL Server · SQLite · libSQL · DuckDB · MongoDB · Redis · Couchbase · ClickHouse · Apache Druid · Elasticsearch · OpenSearch · Apache Trino · Apache Cassandra
PostgreSQL · MySQL · Oracle · SQL Server · IBM Db2 LUW · SQLite · libSQL · DuckDB · MongoDB · Redis · Couchbase · ClickHouse · Apache Druid · Elasticsearch · OpenSearch · Apache Trino · Apache Cassandra

所有 SQL 引擎共用同一套 schema 浏览器、ER 图、schema 对比和监控面板。MongoDB 和 Redis 不属于 SQL 引擎,没有 ER 图和 schema 对比;Druid、Elasticsearch、OpenSearch 和 Trino 都是双重例外:它们的 HTTP SQL 接口没有本构建能解析的 URI 形式,只能按 host/port 配置,而且生成的迁移会直接说明限制,而不是对一个 SQL 里根本没有列变更语句的引擎硬输出 DDL;Couchbase 的 schemaless collection 同理。搜索集群的 ER 图只有方框没有连线:索引不声明外键,引擎模型里也没有外键可声明。

Expand All @@ -98,6 +98,7 @@ PostgreSQL · MySQL · Oracle · SQL Server · SQLite · libSQL · DuckDB · Mon
| **MySQL** | `mysql2` | 完整 SQL IDE、EXPLAIN、事务、查询取消(`KILL QUERY`) |
| **Oracle** | `oracledb`(Thin 模式) | 完整 SQL IDE、`FETCH FIRST N ROWS` 分页、`V$` 监控视图、`ANALYZE TABLE`、`ALTER INDEX REBUILD`、事务 |
| **SQL Server** | `mssql` (tedious) | 完整 SQL IDE、`TOP N` / `OFFSET FETCH` 分页、`sys.dm_*` DMV、`UPDATE STATISTICS`、`DBCC CHECKDB`、事务、自动识别 Azure SQL |
| **IBM Db2 LUW** | `ibm_db`(原生插件,安装时下载 IBM CLI 驱动) | 基于 DRDA 协议的 SQL IDE、`FETCH FIRST` / `OFFSET FETCH` 分页、`SYSCAT.*` 目录浏览、`RUNSTATS` 与 `REORG TABLE` 维护。EXPLAIN 与交互式事务工具栏暂未接入 |
| **SQLite** | `bun:sqlite` / `node:sqlite`(运行时自选) | 完整 SQL IDE,文件型或内存型数据库 |
| **libSQL** | 无驱动,纯 HTTP(Hrana 协议,`POST /v2/pipeline`,8080 端口) | 完整 SQL IDE,同一个 type-id 同时连接自建 libSQL 服务器(`sqld`)与 Turso Cloud。就是跨网络的 SQLite 方言,并能通过 `dbstat` 读到真实的表与索引字节数。凭据是 auth token 而不是密码。维护操作只有 Reindex 和完整性检查:`VACUUM`、`ANALYZE`、`PRAGMA optimize` 都被服务端拒绝 |
| **DuckDB** | `@duckdb/node-api`(原生 N-API 插件,每个平台约 68 MB 绑定) | 面向本地 DuckDB 文件或 `:memory:` 的完整 SQL IDE,运行在应用所在的服务器上。`EXPLAIN (FORMAT JSON)` 物理计划树、`duckdb_*` 目录自省、来自 `pragma_storage_info` 块分配的真实单表字节数,以及通过驱动自身 `interrupt()` 实现的查询取消。三项维护操作:`VACUUM`、`ANALYZE` 和 `CHECKPOINT`——这里 `REINDEX` 是语法错误,`PRAGMA integrity_check` 与 `PRAGMA optimize` 都不存在,因此不为它们提供入口。没有慢查询日志,也没有会话列表:DuckDB 两者都不公开,所以这两个面板会如实说明,而不是显示 0。数据库文件只允许一个操作系统进程打开(只读模式下同样被拒绝),因此第二个 Studio 实例无法打开本实例已持有的文件 |
Expand Down
Loading
Loading