DbSchema Features — One Model Your Team Designs, Reviews & Deploys From

  • 100+ databases — see any SQL or NoSQL schema as an ER diagram in minutes, without writing a query
  • Design offline — generate the physical schema for PostgreSQL, MySQL, MongoDB or any engine you support
  • Schema in Git — review schema changes like the rest of your code, before they ship
  • HTML documentation — opens in any browser, with no install and no license
  • Compare environments — development against production, applying only the changes someone approved
  • Queries without SQL — analysts and new joiners follow relationships without asking a developer
  • One tool, not four — design, documentation, data and deployment in the same model
Free Community Edition for everyone on the team No signup, no account 15-day Architect trial in the same installer Your model stays on your machine

Community Edition is free permanently, for as many people as you like — connect to any database, reverse engineer it, and work in the diagrams and the SQL editor. The trial adds the design, documentation and deployment tools on top.

Trusted by teams at

Watch Someone Do It First

See Inside Any of 100+ SQL and NoSQL Databases

All the databases your company uses, in one tool. Connect, and DbSchema reads the schema and draws it as a diagram — cloud, on-premise, or behind an SSH tunnel. It downloads the JDBC driver for you.

Access
Amazon Athena
Amazon Timestream
Apache Drill
Apache Druid
Apache Ignite
Apache Pinot
Apache Solr
Aurora MySql
Aurora PostgreSQL
Azure Synapse
AzureSQL
Cache
Cassandra
ClickHouse
Cockroach
Couchbase
CrateDB
CSV Files
CTreeAce
CUBRID
DaffodilDb
Databricks
Dataverse
Db2
DBF, FoxPro and xBase
Derby
DocumentDB
Dremio
DuckDB
DynamoDB
Elasticsearch
EnterpriseDB
Exasol
Fabric Lakehouse
Filemaker
Firebird
Firebolt
FrontBase
Google AlloyDB
GoogleBigQuery
GoogleCloudSpanner
Greenplum
H2
HBase
Hive
Hologres
HSql
Impala
InfluxDB
Informix
Ingres
Interbase
JDataStore
Kafka
MariaDb
MarkLogic
MemSQL
Mimer
MonetDB
MongoDb
MySql
Neo4j
Neon
NuoDB
Oracle
OrientDb
Pervasive
PlanetScale
PointBase
PostgreSQL
QuestDB
Redis
Redshift
Salesforce
SAP Adaptive Server
SAP Hana
SAP Max DB
ScyllaDB
SingleStore
SnappyData
Snowflake
SQL Anywhere
SqlBase
SQLite
SqlServer
Starburst
Supabase
TarantoolDB
Teradata
ThoughtSpot
Tibero
TiDB
TimescaleDB
Transbase
Trino
Vertica
VoltDB
Xata
Yellowbrick
YugabyteDB

Visual Database Design and ER Diagrams

A schema drawn on a whiteboard stays on the whiteboard. Design it in DbSchema and the same model gives you the SQL, the documentation and the deployment — with everyone following the same naming and type rules.

Diagrams
Design the Database Schema using Interactive Diagrams

Give every subsystem its own diagram

  • A new developer sees the ten tables their feature touches, not all four hundred.
  • One diagram per subsystem, showing tables, columns, keys and relationships.
Logical design
Logical & Physical Design

Design once, deploy to any database

  • Add a second database engine without designing twice.
  • One model generates the schema for PostgreSQL, MySQL, MongoDB or any supported engine, with your naming and type rules.
DDL import
Import DDL Scripts

Bring a legacy schema under design

  • An old DDL file becomes a model your team can read and change.
  • Import the SQL, edit it visually, export clean DDL.

Built for the Databases That Actually Matter

DbSchema for large, secure database teams

Thousands of tables. Behind a firewall. Changed by several people who never meet. That is the database that needs careful design, and it is the one DbSchema is built for.

Large schemas
Design Large Database Schema

Thousands of tables, still reviewable

  • Find your way around a schema with thousands of tables.
  • Group related tables, auto-arrange the layout, keep one diagram per subsystem.
Secure connections
Design Databases Secure

Your database never leaves its network

  • No cloud account, nothing uploaded, no data-processing agreement.
  • Connect over SSL/TLS or an SSH tunnel. The model is a file on your own machine or Git server.

ISO-27001 certified

Git workflow
Design database schema in a team

Review a schema change like a pull request

  • Schema changes get reviewed like code, before they ship.
  • Commit the model to Git, diff and merge branches, and share HTML or PDF documentation with everyone else.

Database Documentation, So the Schema Outlives the People Who Built It

U { } [ ] Read column and table comments by hovering the columns and tables. Zoom with CTRL+whell mouse button, pan by dragging the diagram with the right-mouse button DbSchema Database Designer MySQL Diagram Read schema comments as mouse-over tooltips DbSchema.com © 2026 Wise CodersDbSchema is an universal database designer. DbSchema has a free Community Edition. Group_ Group_ 🔗 Foreign Key fk_orders_customers orders ref customers ( customer_id ) 🔗 Foreign Key fk_orders_customers orders ref customers ( customer_id ) fk_orders_customers 🔗 Foreign Key fk_reviews_customers reviews ref customers ( customer_id ) 🔗 Foreign Key fk_reviews_customers reviews ref customers ( customer_id ) fk_reviews_customers 🔗 Foreign Key fk_reviews_sales reviews ref sales ( customer_id ) 🔗 Foreign Key fk_reviews_sales reviews ref sales ( customer_id ) fk_reviews_sales 🔗 Foreign Key fk_employees_employee_benefits employees ref employee_benefits ( employee_id ) 🔗 Foreign Key fk_employees_employee_benefits employees ref employee_benefits ( employee_id ) fk_employees_employee_benefits 🔗 Foreign Key fk_employees_salaries employees ref salaries ( salary ) 🔗 Foreign Key fk_employees_salaries employees ref salaries ( salary ) fk_employees_salaries ordersTable company.orders 🔑 Pk pk_orders ( order_id ) order_id⧉ order_id * int ↙ order_items( order_id ) ↙ transactions( order_id ) INT🔗 Referred by order_items ( order_id ) Referred by transactions ( order_id ) customer_id⧉ customer_id int ↗ customers( customer_id ) INT🔗 References customers ( customer_id ) order_date⧉ order_date date DATE total_amount⧉ total_amount decimal(15,2) DECIMAL(15,2) status⧉ status varchar(50) VARCHAR(50) shipping_address⧉ shipping_address varchar(255) VARCHAR(255) salesTable company.sales 🔑 Pk pk_sales ( sales_id ) sales_id⧉ sales_id * int INT price⧉ price decimal(10,0) DECIMAL(10,0) discount⧉ discount decimal(10,0) DECIMAL(10,0) 🔍 fk_sales_customers ( customer_id ) customer_id⧉ customer_id int ↗ customers( customer_id ) ↙ reviews( customer_id ) INT🔗 References customers ( customer_id ) Referred by reviews ( customer_id ) reviewsTable company.reviews 🔑 Pk pk_reviews ( review_id ) review_id⧉ review_id * int INT 🔍 Unq unq_reviews_product_id ( product_id ) product_id⧉ product_id int INT 🔍 fk_reviews_customers ( customer_id ) customer_id⧉ customer_id int ↗ customers( customer_id ) ↗ sales( customer_id ) INT🔗 References customers ( customer_id ) References sales ( customer_id ) rating⧉ rating int INT review_date⧉ review_date date DATE comments⧉ comments text TEXT employee_benefitsTable company.employee_benefits 🔑 Pk pk_employee_benefits ( benefit_id ) benefit_id⧉ benefit_id * int INT 🔍 Unq unq_employee_benefits_employee_id ( employee_id ) employee_id⧉ employee_id int ↙ employees( employee_id ) INT🔗 Referred by employees ( employee_id ) benefit_type⧉ benefit_type varchar(50) VARCHAR(50) start_date⧉ start_date date DATE end_date⧉ end_date date DATE employee_projectsTable company.employee_projects 🔑 Pk pk_employee_projects ( employee_id, project_id ) employee_id⧉ employee_id * int INT 🔑 Pk pk_employee_projects ( employee_id, project_id ) 🔍 Unq unq_employee_projects_project_id ( project_id ) project_id⧉ project_id * int ↙ employees( employee_id ) ↙ projects( project_id ) INT🔗 Referred by employees ( employee_id -> project_id ) Referred by projects ( project_id ) role⧉ role varchar(100) VARCHAR(100) start_date⧉ start_date date DATE end_date⧉ end_date date DATE customersTable company.customers 🔑 Pk pk_customers ( customer_id ) customer_id⧉ customer_id * int ↙ orders( customer_id ) ↙ payment_methods( customer_id ) ↙ reviews( customer_id ) ↙ salaries( salary_id ) ↙ sales( customer_id ) INT🔗 Referred by orders ( customer_id ) Referred by payment_methods ( customer_id ) Referred by reviews ( customer_id ) Referred by salaries ( salary_id -> customer_id ) Referred by sales ( customer_id ) first_name⧉ first_name varchar(50) VARCHAR(50) last_name⧉ last_name varchar(50) VARCHAR(50) email⧉ email varchar(100) VARCHAR(100) phone_number⧉ phone_number varchar(20) VARCHAR(20) address⧉ address varchar(255) VARCHAR(255) registration_date⧉ registration_date date DATE employeesTable company.employees ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ This field contains personal informations 🔑 Pk pk_employees ( employee_id ) employee_id⧉ employee_id * int ↗ employee_benefits( employee_id ) ↗ employee_projects( project_id ) ↙ attendance( employee_id ) INT🔗 References employee_benefits ( employee_id ) References employee_projects ( employee_id -> project_id ) Referred by attendance ( employee_id ) 🔍 Unq unq_employees_first_name ( first_name ) first_name⧉ first_name varchar(50) VARCHAR(50) last_name⧉ last_name varchar(50) VARCHAR(50) email⧉ email varchar(100) VARCHAR(100) hire_date⧉ hire_date date DATE 🔍 Unq unq_employees_salary ( salary ) salary⧉ salary decimal(10,2) ↗ salaries( salary ) ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ This column contains personal informations. DECIMAL(10,2)🔗 References salaries ( salary ) department_id⧉ department_id int INT manager_id⧉ manager_id int INT salariesTable company.salaries 🔑 Pk pk_salaries ( salary_id ) salary_id⧉ salary_id * int ↗ customers( customer_id ) ↗ payment_methods( payment_method_id ) INT🔗 References customers ( salary_id -> customer_id ) References payment_methods ( salary_id -> payment_method_id ) 🔍 Unq unq_salaries_employee_id ( employee_id ) employee_id⧉ employee_id int INT 🔍 Unq unq_salaries_salary ( salary ) salary⧉ salary decimal(10,2) ↙ employees( salary ) DECIMAL(10,2)🔗 Referred by employees ( salary ) 🔍 Unq unq_salaries_effective_date ( effective_date ) effective_date⧉ effective_date date ↙ contracts( start_date ) DATE🔗 Referred by contracts ( start_date -> effective_date ) bonus⧉ bonus decimal(10,2) DECIMAL(10,2) 🔍 Unq unq_salaries_customer_id ( customer_id ) customer_id⧉ customer_id int INT

Right now, one person can explain your schema. If they leave, that knowledge goes with them. Publish the schema once as interactive HTML and anyone can read it — new developers, analysts, auditors — without asking.

HTML5 documentation
Generate HTML5 database schema documentation

Onboarding without a senior developer

  • New developers, analysts and auditors read the schema themselves.
  • One HTML5 package with diagrams, columns, types and comments. Opens in any browser.
Git integration
Share the database design in team using GIT

Commit the schema with the code

  • The schema gets a history and an author, like the rest of the project.
  • Commit, push, diff and merge the model from inside DbSchema, in your existing repository.
Floating licenses
Share licenses in team using Floating License Server

Licenses that follow the person, not the machine

  • Install DbSchema on every machine, pay only for the people using it.
  • Runs on your own network, for machines with no internet access.

Write SQL and Explore Data Without Memorizing the Schema

Explore data and build SQL queries across SQL and NoSQL databases
No SQL Required
Anyone on the team can open a table and read the rows.

Analysts and new developers stop asking the one person who knows how the tables join. DbSchema already knows the relationships — follow them, build the query by dragging, or write SQL with autocomplete that knows your schema.

Data explorer
Explore data from the database

Let analysts answer their own questions

  • Follow a customer to their orders and invoices without writing a join.
  • Uses the real foreign keys, or virtual ones you define.
SQL editor
Edit and execute SQL Queries

Write SQL with the schema in front of you

  • Write correct SQL against a schema you did not design.
  • Autocomplete that knows your tables and columns. Edit results inline, export to CSV, Excel or JSON.
Query builder
Visually build queries using the Query Builder

Get the query right the first time

  • The joins come from the model, not from memory.
  • Drag tables, joins and filters into place, then read the SQL before it runs.

Never Deploy a Schema Change Nobody Reviewed

Compare and Synchronize the Design Model with the Database
Exists in the Model
Missing in the Database

Production drifts. Somebody added a column by hand in March and told nobody. DbSchema shows exactly how each environment differs from the model, statement by statement, and applies only what someone approved.

Schema compare
Compare and Synchronize the Design Model with the Database

See every difference before anything changes

  • Spot the drift between development, test and production early.
  • Apply only the approved changes, or pull the database back into the model.
Deployment
Design the Database Schema, Test it and Delploy it into Production

Move one reviewed change through every environment

  • The change that passed test is the one that reaches production.
  • The same diff at every stage, with the SQL visible before it runs.
Migration scripts
Generate Database Schema Migration Scripts

Ship schema changes as reviewable SQL

  • The DBA gets a script to review instead of a request to interpret.
  • Diff two model versions or two environments, and get the migration in the target dialect.

The Jobs Your Team Keeps Doing By Hand

Execute Automation Scripts using DbSchema
Set It Up Once
Test data, scheduled jobs and database monitoring that run without you.

Filling a test database. Regenerating documentation after every change. Finding what is locking production. Each takes someone twenty minutes every week — or runs on a schedule and takes nobody any time at all.

Test data
Generate Test Data

Test against data that behaves like production

  • Realistic test data, instead of test1, test2, asdf.
  • Reusable patterns and regex rules fill related tables in foreign-key order.
Automation scripts
Automate with Scripts

Chores that run on their own

  • Regenerate documentation, sync schemas and reload test data on a schedule.
  • Groovy scripts with full access to the model and the connection.
Monitoring
Monitor database operations

See what your database is doing right now

  • Find the session holding the lock, while it still matters.
  • Sessions, locks, users and disk usage, in DbSchema or in DbSchemaCLI on a server.

Now with AI Assistant

Ask what a table is for. Describe the query you want in plain English. Let it write the column comments nobody has had time for. The AI reads your own schema, so its answers use your table names. On any paid edition you can use your own API key, so your schema goes only to the model you chose.

See Release Notes

DbSchema AI assistant for database design and SQL work

See your own schema as a diagram in about ten minutes

Download, connect, and DbSchema draws your database. Free Community Edition for the whole team, no signup, and a 15-day Architect trial in the same installer — nothing uploaded, nothing to cancel.