Install
ingestr alongside SQLBuild. The ingestr CLI must be available on PATH.
How it works
- Declare an
ingestrblock on a source insources/*.yml - SQLBuild generates a synthetic loader that calls
ingestr ingestas a subprocess - ingestr reads from the configured source and writes directly to the SQLBuild adapter’s database
- The destination URI is built automatically from your SQLBuild connection config - no manual destination setup

Example: PostgreSQL to DuckDB
Replicate a table from PostgreSQL into your local DuckDB project:sqb load or sqb build and ingestr copies the orders table into your project.
Example: Stripe with incremental merge
Load Stripe charges with incremental merge on a primary key:id column, using created to detect changes.
Configuration reference
Theingestr block on a source supports the following fields:
Strategy mapping
Template variables
All string fields in theingestr block support SQLBuild project variable substitution and context templates:
sqlbuild_local.toml (gitignored):
Destination URI
SQLBuild automatically builds the ingestr destination URI from your adapter connection config. All supported adapters work without manual destination configuration:Reload
When--reload is passed, ingestr runs with --full-refresh, forcing a complete reload regardless of the configured strategy:
Build integration
ingestr sources are managed sources - they participate in the same lifecycle as Python loaders:--load / --no-load / --reload flags.

