Six database engines, 23 versions
Every drawing runs on a fresh container of the engine and version you name, from PostgreSQL 10 to 18 and MySQL 8.0 to 9 to SQL Server 2017 to 2025. The diagram shows what that exact version would build.
A migration is what the engine makes of it
The same DDL can mean different things on PostgreSQL 10 and 18, or on MySQL 8.0 and 9. Drawing on the version you actually deploy to is the only way to see the schema you will actually get, including the type names that engine reports.
Throw-away containers
Each drawing starts an empty database in Docker and destroys it afterwards. Your own databases are never contacted.
Read back over JDBC
Tables, columns, type names, nullability, primary keys and foreign keys come straight from the engine's metadata, not from a guess at your SQL.
Every combination tested
SchemaDrawer's own test suite draws the PetClinic schema with every tool on every offered version of every engine.
Tools per engine
| Tool | PostgreSQL | MySQL | MariaDB | SQL Server | Oracle | SQLite |
|---|---|---|---|---|---|---|
| Flyway | Yes | Yes | Yes | Yes | Yes | Yes |
| Liquibase | Yes | Yes | Yes | Yes | Yes | Yes |
| golang-migrate | Yes | Yes | Yes | Yes | No | No |
| Alembic | Yes | Yes | Yes | Yes | Yes | Yes |
| goose | Yes | Yes | Yes | Yes | No | Yes |
| dbmate | Yes | Yes | Yes | No | No | Yes |
| Atlas | Yes | Yes | Yes | No | No | Yes |
| Prisma Migrate | Yes | Yes | Yes | Yes | No | Yes |
| DbUp | Yes | Yes | Yes | Yes | Yes | No |
| FluentMigrator | Yes | Yes | Yes | Yes | Yes | No |
| Doctrine Migrations | Yes | Yes | Yes | Yes | Yes | Yes |
| Laravel | Yes | Yes | Yes | Yes | No | Yes |
| ActiveRecord (Rails) | Yes | Yes | Yes | Yes | No | Yes |
| Django | Yes 15 and newer | Yes 8.4 and newer | Yes 11.4 and newer | Yes | Yes | Yes |
| Drizzle ORM | Yes | Yes | Yes | No | No | Yes |
| Sqitch | Yes | Yes | Yes | No | Yes | Yes |
| Diesel | Yes | Yes | Yes | No | No | Yes |
| EF Core | Yes | Yes | Yes | Yes | No | No |
| MikroORM | Yes | Yes | Yes | Yes | No | No |
| Knex.js | Yes | Yes | Yes | Yes | Yes | Yes |
| Sequelize | Yes | Yes | Yes | Yes | Yes | Yes |
| TypeORM | Yes | Yes | Yes | Yes | Yes | Yes |
Draw your schema in the next five minutes
One HTTP call with your migration files, one poll, one SVG. Free while we build it.