Back to results
supabase/pg-toolbelt(opens in a new tab)
Language: TypeScript
Postgres migrations made easy
- stars
- 81
- watchers
- 2
- forks
- 22
- open issues
- 19
- Last updated
- 10/29/2026
Language: TypeScript
Postgres migrations made easy
Monorepo for Supabase PostgreSQL tooling.
| Package | Description | npm |
|---|---|---|
@supabase/pg-delta |
PostgreSQL schema diff and migration tool | |
@supabase/pg-topo |
Topological sorting for SQL DDL statements |
Start at docs/, which routes by what you need:
| I want to… | Read |
|---|---|
| Use it — CLI and programmatic API | docs/getting-started.md |
| Understand why the engine was rebuilt | docs/overview.md |
| Understand how it works | docs/architecture/README.md |
| Work on it | docs/architecture/onboarding.md |
| Know what it models and excludes | packages/pg-delta/COVERAGE.md |
| See what's next | docs/roadmap/ |
bun install
bun run build # Build all packages bun run test # Test all packages bun run test:pg-delta # Test pg-delta only bun run test:pg-topo # Test pg-topo only bun run coverage # Test coverage report (all packages) bun run check-types # Type check all packages bun run format-and-lint # Format and lint all code
bun run coverage runs both packages' suites with Istanbul instrumentation and
writes an HTML/lcov report to .coverage-artifacts/ (open
.coverage-artifacts/index.html). Docker is required (the suites use
testcontainers).
bun run coverage # everything (unit + integration + corpus) bun run coverage --unit-only # skip pg-delta's slow integration + corpus suites bun run coverage --pg-image postgres:17-alpine # pin the PostgreSQL image for pg-delta bun run coverage --skip-tests # regenerate the report from the last run
New code is expected to come with test coverage — see CONTRIBUTING.md.
# pg-delta cd packages/pg-delta bun run test src/ # Unit tests only bun run test tests/ # Integration tests only (requires Docker) # pg-topo cd packages/pg-topo bun run test # All tests (requires Docker)
This monorepo uses changesets for versioning.
bunx changeset # Create a changeset bun run version # Apply changesets to update versions bunx changeset publish # Publish to npm
See CONTRIBUTING.md before opening a pull request.
open-for-contribution label.Closes #123).Use ISSUES.md for issue-writing guidance, especially for pg-delta reproductions.