Skip to main content

dbt environment runner with Snowflake zero-copy clone sandboxes

Project description

dbts

dbt environment runner with Snowflake zero-copy clone sandboxes.

dbts lets you run dbt against a private, per-developer Snowflake clone of your staging or live database — without managing a separate set of credentials, profile files, or CLIs. It also acts as a single front for running dbt against your shared dev, staging, and live targets.

Install

uv tool install dbts
# or run ad hoc:
uvx dbts ...

Quick start

  1. Add a sandbox: target to ~/.dbt/profiles.yml (alongside your existing dev, staging, live):

    tardis_snowflake:
      outputs:
        sandbox:
          type: snowflake
          account: <same as the other targets>
          user: <same as the other targets>
          role: <same as the other targets>
          authenticator: externalbrowser
          database: scm_analytics_sandbox_<your_username>
          warehouse: <same as the other targets>
          schema: raw_data_vault
    
  2. Create your clone:

    dbts up --from staging
    
  3. Run dbt against it:

    dbts build my_model
    dbts test  +my_model+
    
  4. Refresh or drop when done:

    dbts refresh --from staging
    dbts drop
    

Commands

dbts up      --from staging|live   create the clone
dbts refresh --from staging|live   drop and re-create the clone
dbts status                        show clone DB, source, age
dbts drop                          drop the clone

dbts build|run|test|compile|...    pass through to dbt (default --target sandbox)
  --target sandbox|staging|live|dev   choose target

Project-side coupling

dbts assumes the dbt project's generate_database_name macro recognises ENV=sandbox and routes models into a _SANDBOX_<USER> suffixed database. See the dbt project's README for the macro snippet.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dbts-0.1.0.tar.gz (43.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dbts-0.1.0-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file dbts-0.1.0.tar.gz.

File metadata

  • Download URL: dbts-0.1.0.tar.gz
  • Upload date:
  • Size: 43.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dbts-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4fe74321385a0e62bb2d775921744c3e2f7ddb1c8f1f1bf3981aa8f3d0aa7b62
MD5 6af103ce0768d6d957faa0c5c109cb0d
BLAKE2b-256 ddb688545c34cc19fed6c0232c591ddb0129cdf9420176b2ea6d13420e95027a

See more details on using hashes here.

Provenance

The following attestation bundles were made for dbts-0.1.0.tar.gz:

Publisher: publish.yml on luiul/dbts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dbts-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: dbts-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 9.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dbts-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 074d10998a8740418ef93c9313e0e8e313c02292ed8cac71a78222bc9b5d990f
MD5 4335b6422860cce3f75108cd1697c2f9
BLAKE2b-256 18fa06db463a795952a7df1c571d0998df8b9906424769a618c2247e346cc822

See more details on using hashes here.

Provenance

The following attestation bundles were made for dbts-0.1.0-py3-none-any.whl:

Publisher: publish.yml on luiul/dbts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page