DbSchema lets you design, manage, and document Apache Derby 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 Apache Derby database, and deploy changes. DbSchema also includes a data editor, query builder, and HTML5 documentation - everything you need in one tool.
Download DbSchema Download Apache Derby JDBC Driver
Apache Derby is a lightweight Java database distributed with the JDK as JavaDB, and it remains common in Java EE application servers, test containers, and standalone Java applications that need an embedded relational store. Derby databases are self-contained file directories, making them portable but lacking any built-in graphical tooling. DbSchema connects to Derby in both embedded and network server modes, providing ER diagrams, a table editor, and SQL tooling for developers who need to understand or evolve a Derby schema.
Derby's embedded mode requires no server process — DbSchema opens the database files directly. When Derby runs as a network server inside a Java EE container, DbSchema connects over the network and renders the same visual schema. Both modes produce the same diagram canvas with tables, columns, and foreign key relationships visible at a glance.
Derby's SQL dialect is strict about types and constraints, and ALTER TABLE operations have specific limitations compared to other databases. DbSchema's table editor generates Derby- compatible DDL for each change and previews it before applying, reducing the risk of runtime errors when modifying a live Derby instance.
Derby is often used in Java test pipelines that require representative data to exercise application logic. DbSchema's data generator produces rows that satisfy Derby's type constraints and foreign key relationships, seeding test databases with realistic content without requiring hand-written INSERT scripts for every test scenario.
For embedded mode, use the JDBC URL jdbc:derby:/path/to/db;create=true — the
create=true parameter creates the database if it does not already exist. For
Derby Network Server, use jdbc:derby://host:1527/dbname after starting the server
with java -jar derbyrun.jar server start. DbSchema includes the Derby JDBC driver
for both modes. Note that Derby enforces single-JVM access in embedded mode — stop the owning
application before opening an embedded Derby database in DbSchema to avoid lock conflicts.