Skip to main content

SQLBuild

The refactorable warehouse. Verify early, test properly, and refactor safely.

Website · Docs · Quickstart · Roadmap

Change your warehouse as often as your code. SQLBuild brings compile-time checks, tests and diffs to your SQL, so change is safe. It is a free, open-source framework for SQL and Python data pipelines, and it keeps its state in append-only tables in your own warehouse: no external state database, no manifest files and no paid tier.

Moving and renaming an incremental model: sqb plan migrates the existing table instead of rebuilding it

Quick start

pip install sqlbuild
sqb playground waffle-shop
cd waffle-shop
sqb plan
sqb build
sqb test

The playground runs on local DuckDB, with no warehouse credentials.

What it does

Catch mistakes before anything runs

  • Compile-time checks. SQLBuild resolves references, validates SQL, infers column types, checks contracts and computes column lineage, all offline. A typo'd column fails in seconds, not halfway through a warehouse run.
  • Your conventions as rules. Built-in and custom Python rules turn review comments into compile errors: for example, marts can't read sources directly, or every final model declares its key.

Prove it works

  • Tests across models. SQL tests mock the sources and check the result through every model in between, with macros as test helpers. Macro, UDF and table-function tests are built in.
  • End-to-end scenarios. Build the real graph against fixture data, capture fixtures from the warehouse, and replay them locally on DuckDB in CI. See scenarios.
  • Audits and diffs. Audits run before data reaches the target table, and data diffs compare dev against prod or any query.

Change it without rebuilding everything

  • Renames keep their history. Rename or move an incremental or snapshot model and SQLBuild migrates the existing table instead of rebuilding it.
  • Replay on change. When a model's SQL changes, choose how far back to reprocess, from only the new data to the last 14 days to a full rebuild, with replay_on_change.
  • Macros don't have to be global. Keep macros, enums and constants next to the models that use them, and preview what a move would break with sqb scope. See declaration scopes.
  • Tidy up safely. The janitor archives stale tables before anything is deleted.

sqb scope previews a move: the enum and macro the model uses would be lost, so the move is flagged before anything breaks

Ingestion with Python loaders, and Python tasks, assets and checks, run in the same graph as your SQL models. See the docs for everything else.

Example

A model is a SQL file with a MODEL() header and a SELECT:

MODEL (
  materialized table,
  columns (
    order_id (audits [not_null, unique]),
  ),
  tags [marts],
);

SELECT
  o.order_id,
  o.customer_id,
  p.amount_cents AS total_cents
FROM __ref("stg_orders") o
JOIN __ref("stg_payments") p USING (order_id)

A test mocks the sources and asserts on the model, resolving every model in between from its real SQL:

TEST();

WITH
__source__raw__orders AS (
  @mock_orders()
),
__source__raw__payments AS (
  SELECT
    1 AS payment_id,
    1 AS order_id,
    1500 AS amount_cents,
    'credit_card' AS method
),
__expected__fact_orders AS (
  SELECT 1 AS order_id, 100 AS customer_id, 1500 AS total_cents
)
SELECT 1

Warehouses

Warehouse Status
Snowflake Supported
DuckDB Supported
MotherDuck Supported
PostgreSQL Supported
BigQuery Beta
Databricks Beta
SQL Server Beta

Snowflake is the main target. Beta adapters build, test and plan, but have had less production use so far. See adapters.

Free and independent

SQLBuild is Apache 2.0 and will stay free: no paid tier, no commercial edition, and no feature held back for one. Its state lives in your warehouse, next to your data. See the roadmap for what's next.

Contributing

Contributions are welcome. See CONTRIBUTING.md.

License

SQLBuild is licensed under the Apache License 2.0.

Release files for sqlbuild 0.119.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sqlbuild 0.119.3
File Size Uploaded
sqlbuild-0.119.3.tar.gz 1.9 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for sqlbuild 0.119.3
File
sqlbuild-0.119.3-cp312-abi3-win_amd64.whl CPython 3.12 abi3 Windows x86-64 Details
sqlbuild-0.119.3-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 abi3 Linux glibc 2.17+ x86-64 Details
sqlbuild-0.119.3-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 abi3 Linux glibc 2.17+ ARM64 Details
sqlbuild-0.119.3-cp312-abi3-macosx_11_0_arm64.whl CPython 3.12 abi3 macOS 11.0+ ARM64 Details
sqlbuild-0.119.3-cp312-abi3-macosx_10_12_x86_64.whl CPython 3.12 abi3 macOS 10.12+ x86-64 Details

Total release size: 74.2 MB

Release files / sqlbuild-0.119.3.tar.gz

Download URL sqlbuild-0.119.3.tar.gz
Size 1.9 MB
Tags Source
SHA-256 checksum
How to use checksums
a26ab64765a5e0e23f6f7754776a77a5726ba8b3cb8a9680e48fd1e150df8abe
BLAKE2b-256 checksum
How to use checksums
fb85d332d5747550d418e0b10905614f9d0f9cb6caf5f8cea53fdc23c24745d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.

Transparency log

Release files / sqlbuild-0.119.3-cp312-abi3-win_amd64.whl

Download URL sqlbuild-0.119.3-cp312-abi3-win_amd64.whl
Size 15.3 MB
Tags CPython 3.12 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
32a43f950a0e3747b3367a6264c0a602a051d9aea659be2233261e1e072ff536
BLAKE2b-256 checksum
How to use checksums
90ae3ecfa588b727187bcbade7873858afcaae6036f843cd6a08e1fb1a3d13ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.

Transparency log

Release files / sqlbuild-0.119.3-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL sqlbuild-0.119.3-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 14.7 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
d2c1e4b393122634924ad7e01f7cb900e0c567c4155841fe621d72b5dec70722
BLAKE2b-256 checksum
How to use checksums
6f59a97945f1828b1e9afa984e8d94c83f8905899036b1da8c2ce9973025d918
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.

Transparency log

Release files / sqlbuild-0.119.3-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL sqlbuild-0.119.3-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 14.1 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
43c93bd47878b9465926d61f9762aec08fd9a9af1cd5bf888fee1cf407ef6a68
BLAKE2b-256 checksum
How to use checksums
61663887547ce2013ee8d18c4cc568342706662c4922e4ad409d965725f7dafe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.

Transparency log

Release files / sqlbuild-0.119.3-cp312-abi3-macosx_11_0_arm64.whl

Download URL sqlbuild-0.119.3-cp312-abi3-macosx_11_0_arm64.whl
Size 14.0 MB
Tags CPython 3.12 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
bb4b8d299ce7172d17469b30572605e724e73e20d2e2b6d580c1568a6e790cd4
BLAKE2b-256 checksum
How to use checksums
a99ee339317826d4b4190cfc0ca9fe807b9bd82aa84739b5ff225c57f76f5039
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.

Transparency log

Release files / sqlbuild-0.119.3-cp312-abi3-macosx_10_12_x86_64.whl

Download URL sqlbuild-0.119.3-cp312-abi3-macosx_10_12_x86_64.whl
Size 14.3 MB
Tags CPython 3.12 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
0e992a6f77e1b2ccb752dd6a7460d814416ef7e5ea1edd902f72edbb249884e3
BLAKE2b-256 checksum
How to use checksums
00ae63d86e80b1ea009458b4c6ea11a87308c867feac6e9de27a92c84fcc3064
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.119.3 This release

6 release files

0.99.0

6 release files

0.98.5

6 release files

0.98.4

6 release files

0.98.3

6 release files

0.98.2

6 release files

0.98.1

6 release files

0.98.0

6 release files

0.97.2

6 release files

0.97.1

6 release files

0.97.0

6 release files

0.96.1

6 release files

0.96.0

6 release files

0.95.0

6 release files

0.94.6

6 release files

0.94.5

6 release files

0.94.4

6 release files

0.94.3

6 release files

0.94.2

6 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page