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 installbun 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 codebun 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 runNew 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 npmSee CONTRIBUTING.md before opening a pull request.
- Open an issue first.
- Wait for a maintainer to triage it and add the
open-for-contributionlabel. - Then open a pull request that links the issue (for example
Closes #123).
Use ISSUES.md for issue-writing guidance, especially for pg-delta reproductions.
MIT