Skip to content
SPECIFICTION
Get listed

DBDiff

dbdiff.dev

WindowsmacOSLinux

What it is

DBDiff compares local or remote databases and creates migration files from their differences. Its drivers support MySQL, PostgreSQL and SQLite, and its schema and data diffing covers tables, views, materialized views, triggers, routines, types, domains, sequences and row-level-security policies. YAML settings and command-line options can include or exclude tables, omit columns, filter rows, and set schema or data scope by table. Migration output includes up and down SQL in native SQL, Flyway, Liquibase XML or YAML, Laravel Migrations and custom templates. A built-in runner offers commands to create, apply, roll back, inspect, validate, repair and baseline migrations. A Supabase option selects PostgreSQL and enables SSL, but limits that diff to the public schema, leaving managed auth and storage schemas out. Pre-built binaries are available for Windows, macOS and Linux without PHP, Node or Composer; PHAR and Composer installs need PHP 8.1 or newer. DBDiff is free, open source under the MIT license.

Spec sheet

Purpose
DBDiff compares two local or remote databases and generates migration files from their schema and data differences.Read 2 Oct 2026 · dbdiff.dev
Integrations
The site documents Supabase support and compatibility with tools including Flyway, Liquibase, Laravel Migrations, Docker, and Podman.Read 2 Oct 2026 · dbdiff.dev
Support
Users can open GitHub issues, and the site provides a contact route for commercial support enquiries.Read 2 Oct 2026 · dbdiff.dev
License
DBDiff is distributed under the MIT license.Read 2 Oct 2026 · dbdiff.dev
Maker
Akal Software lists DBDiff as an open-source project and describes itself as a London-based technology consultancy.Read 2 Oct 2026 · akalsoftware.com
Built-in runner
The CLI includes commands to create, apply, roll back, inspect, validate, repair, and baseline migrations.Read 2 Oct 2026 · dbdiff.dev
Containers
Multi-architecture Docker and Podman images for linux/amd64 and linux/arm64 are published to GHCR on every release.Read 1 Oct 2026 · dbdiff.dev
Database support
It supports MySQL, PostgreSQL, and SQLite through its CLI drivers.Read 2 Oct 2026 · dbdiff.dev
Database variants
The site lists compatible services including AWS Aurora, RDS, Neon, AlloyDB, CockroachDB, YugabyteDB, TimescaleDB, and pgvector, while noting that most are not core-team tested.Read 2 Oct 2026 · dbdiff.dev
Diff coverage
It can diff tables, views, materialized views, triggers, routines, types, domains, sequences, row-level security policies, and data.Read 2 Oct 2026 · dbdiff.dev
Filtering
YAML configuration and CLI options support table inclusion and exclusion, column exclusions, row filters and per-table schema or data scope.Read 1 Oct 2026 · dbdiff.dev
Installation
DBDiff is distributed as pre-built binaries, a PHAR, an npm package, Docker/Podman images, and Composer source.Read 2 Oct 2026 · dbdiff.dev
Limitations
For Supabase, DBDiff reads the public schema; objects in managed schemas such as auth and storage are outside the diff.Read 2 Oct 2026 · dbdiff.dev
Migration integrations
DBDiff supports Flyway, Liquibase, Laravel Migrations and other compatible migration tools.Read 1 Oct 2026 · dbdiff.dev
Migration output
It generates up and down SQL and supports native SQL, Flyway, Liquibase XML/YAML, Laravel Migrations, and custom templates.Read 2 Oct 2026 · dbdiff.dev
Migration runner
The built-in migration runner provides new, up, down, status, validate, repair and baseline commands.Read 1 Oct 2026 · dbdiff.dev
Operating systems
Pre-built binaries are listed for Windows, macOS, and Linux, with x64 and arm64 variants.Read 2 Oct 2026 · dbdiff.dev
Performance
Schema diffing uses a constant number of round-trips regardless of table count and has been tested on databases with millions of rows.Read 1 Oct 2026 · dbdiff.dev
PostgreSQL limitation
The site documents cases where enum label removal or reordering cannot automatically migrate dependent routines, types, partition keys, or certain views.Read 2 Oct 2026 · dbdiff.dev
PostgreSQL renderer
On PostgreSQL 16 test cases, the built-in renderer reproduced 68 of 90 cases and pg_dump reproduced 81 of 90 when available and new enough.Read 1 Oct 2026 · dbdiff.dev
Schema coverage
It diffs tables, views, materialized views, triggers, stored procedures and functions, enum types, composite types, domains, sequences, row-level-security policies and data.Read 1 Oct 2026 · dbdiff.dev
Security support
The security policy lists version 2.0.x as supported, version 1.0.x as unsupported, and requests vulnerability reports by email rather than public issues.Read 1 Oct 2026 · github.com
Supabase
The --supabase option selects the PostgreSQL driver and enables SSL automatically, while Supabase policies and row-level-security flags are diffed as first-class objects.Read 1 Oct 2026 · dbdiff.dev
Supabase scope
For Supabase, DBDiff reads the public schema and excludes objects in managed auth and storage schemas from the diff.Read 1 Oct 2026 · dbdiff.dev

Strong points and limits

Strong points

  • Supports MySQL, PostgreSQL and SQLite.
  • Diffs schema objects and data.
  • Offers multiple migration output formats.
  • Pre-built binaries need no PHP, Node or Composer.
  • Includes a migration runner.

Limits

  • Supabase diffs exclude managed auth and storage schemas.
  • PHAR and Composer installs require PHP 8.1 or newer.
  • PostgreSQL 16 renderer reproduced 68 of 90 cases.

Who it suits

DBDiff suits teams comparing databases across supported engines and producing migration scripts for existing migration workflows. Its filters and runner also fit users who want to scope diffs and manage migrations from the CLI.

Verdict

DBDiff combines multi-engine comparison, configurable scope and migration generation with a built-in runner. Check its Supabase scope and PostgreSQL renderer coverage against the databases and objects you need to migrate.

Where Specifiction places it

Alternatives to DBDiffAll alternatives →