Design and Manage YugabyteDB Databases Visually with DbSchema

DbSchema lets you design, manage, and document YugabyteDB 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 YugabyteDB database, and deploy changes. DbSchema also includes a data editor, query builder, and HTML5 documentation - everything you need in one tool.

DbSchema Database Designer

Download DbSchema Download YugabyteDB JDBC Driver

YugabyteDB's Distributed PostgreSQL-Compatible Architecture

YugabyteDB is an open-source distributed SQL database designed for cloud-native applications that require global scalability, strong consistency, and high availability. It exposes two query APIs: YSQL, a PostgreSQL-compatible SQL interface, and YCQL, a Cassandra Query Language-compatible interface for wide-column workloads. Both APIs are backed by the same distributed storage engine (DocDB), which uses the Raft consensus protocol to replicate data across nodes and regions for automatic fault tolerance.

Horizontal scaling is achieved through automatic sharding — tables are split into tablets that are distributed across nodes without any manual partitioning effort. YugabyteDB Anywhere extends this to multi-cloud and hybrid deployments, managing clusters across AWS, GCP, Azure, and on-premises from a single control plane. DbSchema connects to YugabyteDB via the YugabyteDB smart JDBC driver and reverse-engineers the YSQL schema — tables, indexes, views, sequences, foreign keys, and partitioned tables — into a visual diagram that reflects the full relational model deployed across your distributed cluster.

YugabyteDB YSQL distributed schema with geo-partition definitions visualized in DbSchema

Writing YSQL Queries in DbSchema's SQL Editor

YSQL is wire-compatible with PostgreSQL, so the full suite of PostgreSQL SQL features — window functions, CTEs, lateral joins, JSON operators, full-text search, and PL/pgSQL stored procedures — works without modification. DbSchema's SQL editor connects via the YugabyteDB JDBC driver and lets you author, execute, and iterate on queries with results displayed in the tabular results grid. You can run EXPLAIN (DIST ON, ANALYZE) to view YugabyteDB-specific distributed query plans that show tablet-level scan and aggregation operations.

YugabyteDB-specific DDL such as CREATE TABLE ... SPLIT AT VALUES (...) for hash-sharding hint overrides, or TABLESPACE assignments for geo-partitioning, can be authored and executed in the SQL editor. This is useful when designing schemas that pin specific partitions to particular geographic regions for data residency compliance. Multiple query tabs allow you to keep schema DDL, data validation queries, and performance investigation queries open simultaneously.

Writing YSQL PostgreSQL-compatible queries against YugabyteDB in DbSchema

Exploring Distributed Table Data and Tablet Distribution

The DbSchema data explorer presents YugabyteDB YSQL table data in a familiar row-browsing interface. You can page through records, filter by column values, and navigate foreign-key relationships to understand how application entities are linked across the distributed schema. Because YugabyteDB's YSQL layer abstracts the distributed storage, the data explorer presents a logically unified view of table data even when those rows are physically stored in tablets spread across multiple nodes and regions.

Read replicas configured for low-latency reads in specific regions are transparent to JDBC clients — the YugabyteDB smart driver routes reads to the nearest replica automatically. This means the data explorer benefits from reduced read latency when the DbSchema client is geographically close to a read replica, which is useful when teams in multiple locations share a YugabyteDB cluster and need responsive data browsing during development.

Exploring YugabyteDB distributed table data in the DbSchema data explorer

Connecting DbSchema to YugabyteDB

Select YugabyteDB from the database list in DbSchema. The YugabyteDB smart JDBC driver (jdbc-yugabytedb-*.jar) is available from Maven Central or the YugabyteDB GitHub releases page. The driver class is com.yugabyte.Driver. The JDBC URL format is: jdbc:yugabytedb://localhost:5433/yugabyte. A critical detail: YugabyteDB's YSQL interface listens on port 5433 by default, not the PostgreSQL standard port 5432. Entering 5432 is the most common connection mistake when migrating from a PostgreSQL tooling setup.

The default database is yugabyte and the default superuser is also yugabyte. For multi-node clusters, the smart driver accepts a comma-separated list of host:port pairs in the URL for topology-aware load balancing: jdbc:yugabytedb://node1:5433,node2:5433,node3:5433/yugabyte?load-balance=true. Add ?sslmode=require for SSL-enabled clusters. YugabyteDB Managed (the cloud service) requires SSL and provides a CA certificate for download from the cluster settings page; configure this in DbSchema's SSL settings panel.

Why Teams Use DbSchema with YugabyteDB

  • Visualizes geo-partitioned and hash-sharded schemas clearly, making distributed schema design easier to communicate.
  • Leverages PostgreSQL-compatible SQL tooling that teams already know, reducing the learning curve for distributed SQL adoption.
  • Renders YSQL-specific DDL (tablespaces for geo-partitioning, split hints) in the schema diagram alongside standard PostgreSQL constructs.
  • Uses the smart JDBC driver for topology-aware connection routing, benefiting from low-latency reads to the nearest replica.
  • Supports YugabyteDB Managed cloud connections with SSL and certificate-based authentication configuration.
  • Generates offline schema documentation for globally distributed schemas, which are otherwise difficult to document comprehensively.