Design and Manage Xata Databases Visually with DbSchema

DbSchema lets you design, manage, and document Xata 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 Xata 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 Xata JDBC Driver

Xata's Serverless PostgreSQL with Branching and Built-In Search

Xata is a serverless data platform built on PostgreSQL that combines relational database capabilities with built-in full-text search, file attachments, and a branch-based development workflow. Every Xata database is organized into workspaces, databases, and branches, where each branch is an isolated PostgreSQL environment with its own schema state. Branching works similarly to git — you can fork a branch for a feature, apply schema changes, and merge back to the main branch without affecting other environments.

DbSchema connects to Xata via the standard PostgreSQL JDBC driver because Xata exposes a PostgreSQL-compatible wire protocol endpoint. Once connected, DbSchema reverse-engineers the branch's schema into a visual diagram. Tables created by Xata's search integration (which uses Elasticsearch under the hood but exposes them through SQL-like views) appear alongside your regular tables, giving you a complete picture of every queryable surface in your Xata branch.

Xata branch-specific schema with search-enabled tables visualized in DbSchema

Writing PostgreSQL Queries and Exploring Xata's Search-Enabled Tables

Xata's PostgreSQL endpoint accepts standard SQL, including joins, aggregations, window functions, and CTEs. DbSchema's SQL editor lets you write and execute queries against any Xata branch using the same interface you would use with any other PostgreSQL database. Xata's built-in full-text search is exposed as a xata_search function that can be called from SQL, so you can write search queries directly in the editor and review ranked results in the results grid.

Because Xata auto-generates a unique endpoint URL per branch, you can save separate DbSchema connection profiles for your main, preview, and development branches and switch between them with a single click. This makes it easy to test SQL changes against a feature branch before those changes are merged and applied to the main branch's schema.

Writing PostgreSQL queries against Xata branches in DbSchema

Browsing Branch-Specific Schemas and Table Data

The DbSchema data explorer works with Xata the same way as any PostgreSQL database. You can browse table records row by row, filter by any column, and navigate foreign-key relationships to understand how your application data is linked. This is particularly useful during feature development on a Xata branch, where you need to confirm that your application is writing records with the correct structure before merging the branch.

Xata's file attachment feature stores file metadata in a dedicated JSON column alongside your table data. The explorer renders JSON column values as formatted text, letting you inspect attachment metadata — file name, MIME type, size, and storage URL — without writing custom queries. The CSV export feature lets you extract table snapshots from any branch for reporting or testing purposes.

Browsing Xata branch table data in the DbSchema data explorer

Connecting DbSchema to Xata

Select PostgreSQL as the database type in DbSchema. Xata provides a direct PostgreSQL connection string for each branch in the Xata dashboard under Settings → Connection strings. The URL format is a standard PostgreSQL JDBC URL, for example: jdbc:postgresql://us-east-1.sql.xata.sh/mydb:main?sslmode=require. The path segment encodes the database name and branch name separated by a colon. SSL is required — always include sslmode=require in the URL.

Authentication uses an API key generated from the Xata dashboard; use it as the password in the DbSchema connection dialog with your Xata workspace email as the username (or as specified in the connection string Xata provides). Each branch generates a distinct endpoint, so create one DbSchema connection profile per branch if you work across multiple branches regularly. The PostgreSQL JDBC driver (org.postgresql.Driver) is bundled with DbSchema, so no additional driver installation is needed.

Why Teams Use DbSchema with Xata

  • Provides a visual schema diagram per Xata branch, making branch-based development workflows easier to review and document.
  • Lets developers run SQL queries against any branch without switching to the Xata web UI for every query.
  • Surfaces search-enabled table views in the schema diagram, helping teams understand the full queryable surface of their Xata database.
  • Simplifies management of multiple branch connection profiles in a single tool for teams that maintain several active Xata branches.
  • Enables JSON column inspection (e.g., file attachment metadata) through the data explorer without requiring custom SQL.
  • Generates offline schema documentation useful for architecture reviews and compliance processes.