DbSchema lets you design, manage, and document DuckDB databases. Create ER diagrams, define tables and columns, and generate SQL scripts - with or without a live database connection.
Use Git to share the design, compare it with the DuckDB database, and deploy changes. DbSchema also includes a data editor, query builder, and HTML5 documentation - everything you need in one tool.
Download DbSchema Download DuckDB JDBC Driver
DuckDB is an embedded analytical SQL engine optimized for columnar, vectorized query execution — often described as the SQLite of OLAP workloads. It runs in-process, stores data in a single file, and can query Parquet, CSV, and JSON files directly without loading them into the database first. DbSchema connects to DuckDB via its JDBC driver, displays table schemas and view definitions in the diagram canvas, and provides an SQL editor for running complex analytical queries against both native DuckDB tables and external data files.
DuckDB databases are single files — no server process or network configuration is required. DbSchema opens a DuckDB file directly, reads the schema metadata, and renders tables, views, and their column definitions in the diagram canvas. This is useful for exploring DuckDB files produced by data pipelines, shared as analysis artifacts, or used as local data stores in Python and R data science workflows.
DuckDB supports a rich analytical SQL dialect including window functions, PIVOT, UNPIVOT, and
direct file queries using read_parquet(), read_csv_auto(), and
read_json(). DbSchema's SQL editor lets you write and iterate on these queries,
inspect result sets inline, and export data — without switching to a Python notebook or a
separate CLI tool.
After running a query, the data explorer renders results in a paginated grid with column-level filtering. Use it to verify that an aggregation produces the expected row count, confirm that a Parquet file loaded with the correct column types, or audit individual records from a large result set without exporting to CSV first.
DuckDB uses a file-based JDBC URL: jdbc:duckdb:/path/to/file.duckdb. For an
in-memory session without persistence, use jdbc:duckdb: with an empty path.
DbSchema downloads the DuckDB JDBC driver automatically — no manual driver installation is
required. Because DuckDB enforces single-writer access, close any other process that has the
database file open (such as a Python duckdb.connect() session) before connecting
from DbSchema to avoid a lock error.