SQL workflow tool for BigQuery, Postgres, and Supabase.
SQLAnvil is an open-source fork of Dataform OSS (Apache 2.0), extended with first-class PostgreSQL and Supabase support. Define your data transformations in SQLX, have SQLAnvil compile them to idiomatic SQL, and run them against your warehouse.
SQLAnvil is not affiliated with or endorsed by Google. The Dataform name and related marks are trademarks of Google LLC. See NOTICE for attribution.
- BigQuery — full support: partitioning, clustering, labels, materialized views,
MERGE-based incremental upserts - PostgreSQL — idiomatic DDL: native partitioning,
INSERT ... ON CONFLICTupserts, btree/gin/gist/brin indexes, tablespaces, fillfactor - Supabase — extends Postgres with RLS policies, Realtime publications, pgvector indexes, and Supabase Wrappers (coming soon)
- SQLX + YAML + JS — three authoring modes: SQL with config blocks,
actions.yamlbulk definitions, or the JavaScript API
npm install -g @sqlanvil/cli
sqlanvil init my-project
cd my-project
# edit workflow_settings.yaml to configure your warehouse
sqlanvil compile
sqlanvil runworkflow_settings.yaml example (Postgres):
warehouse:
kind: postgres
host: localhost
port: 5432
database: analytics
user: sqlanvil_writer
password: ${PG_PASSWORD}
ssl: disable
defaultSchema: publicFirst action (definitions/my_view.sqlx):
config {
type: "view",
description: "My first SQLAnvil view."
}
SELECT 1 AS id, 'hello' AS greetingFull documentation at sqlanvil.com.
core/ Compiler + action types (table/view/incremental/assertion/operation/notebook/declaration)
cli/ CLI entrypoint and per-adapter glue (cli/api/dbadapters/)
protos/ Protobuf definitions for core/configs/execution/db_adapter
examples/ Sample SQLAnvil projects
scripts/ ./scripts/run is the CLI entrypoint wrapper
SQLAnvil uses Bazel (via Bazelisk). The recommended dev path on macOS is the Docker-based build container:
# Build the proto layer
./scripts/docker-bazel build //protos:sqlanvil_proto
# Run the CLI
./scripts/docker-bazel run //packages/@sqlanvil/cli:bin -- help
# Run tests
./scripts/docker-bazel test //...See contributing.md for full instructions.
Reference docs and design documents live in the separate sqlanvil/docs repo, published at sqlanvil.com/docs.
Apache License 2.0. See LICENSE and NOTICE.
SQLAnvil is a derivative of Dataform OSS (originally developed by Dataform Co and contributed to by Google LLC). It has been fully renamed and extended with first-class PostgreSQL/Supabase support. Licensed under Apache License 2.0.