Skip to main content

CLI to autofix deprecations in dbt projects

Project description

dbt-autofix (previously dbt-cleanup)

This tool can help teams clean up their dbt projects so that it conforms with dbt configuration best practices and update deprecated config:

Deprecation Code in dbt Core Files Description
CustomKeyInObjectDeprecation (*) YAML files Move all models configs under config: in YAML files
CustomKeyInObjectDeprecation (*) YAML files Move all models extra config (not valid or custom) under meta: and meta under config:
DuplicateYAMLKeysDeprecation YAML files Remove duplicate keys in YAML files, keeping the second one to keep the same behaviour
- YAML files Only allow email and name as properties for groups and exposures owners
UnexpectedJinjaBlockDeprecation SQL files Remove extra {% endmacro %} and {% endif %} that don't have corresponding opening statements
- dbt_project.yml Prefix all configs for modeles/tests etc... with a +
ConfigDataPathDeprecation dbt_project.yml Remove deprecated config for data path (now seed)
ConfigLogPathDeprecation dbt_project.yml Remove deprecated config for log path
ConfigSourcePathDeprecation dbt_project.yml Remove deprecated config for source path
ConfigTargetPathDeprecation dbt_project.yml Remove deprecated config for target path

(*) : those autofix rules are currently deactivated in main

Installation

From PyPi

  • with uv/uvx (uv needs to be installed before):
    • to run the latest version of the tool uvx dbt-autofix
    • to run a specific version of the tool uvx dbt-autofix@0.1.2
    • to install the tool as a dedicated CLI; uv tool install dbt-autofix
  • with pip: In a venv, pip install dbt-autofix and then dbt-autofix ...

From the source repo

To run it from the git repo directly, install uv and then

run the tool directly

uvx --from git+https://github.com/dbt-labs/dbt-autofix.git dbt-autofix --help

or install it so that it can be run with dbt-cleanup in the future

uv tool install --from git+https://github.com/dbt-labs/dbt-autofix.git dbt-autofix

Usage

  • dbt-autofix deprecations: refactor YAML and SQL files to fix some deprecations
    • add --path <mypath> to configure the path of the dbt project (defaults to .)
    • add --dry-run for running in dry run mode
    • add --json to get resulting data in a JSONL format
    • add --json-schema-version v2.0.0-beta.4 to get the JSON schema from a specific Fusion release (by default we pick the latest)

Each JSON object will have the following keys:

  • "mode": "applied" or "dry_run"
  • "file_path": the full path of the file modified. Each file will appear only once
  • "refactors": the list of refactoring rules applied

Calling deprecations without --dry-run should be safe if your dbt code is part of a git repo.

Please review the suggested changes to your dbt project before merging to main and make those changes go through your typical CI/CD process.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

dbt_autofix-0.2.0.tar.gz (23.3 kB view details)

Uploaded Source

Built Distribution

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

dbt_autofix-0.2.0-py3-none-any.whl (15.9 kB view details)

Uploaded Python 3

File details

Details for the file dbt_autofix-0.2.0.tar.gz.

File metadata

  • Download URL: dbt_autofix-0.2.0.tar.gz
  • Upload date:
  • Size: 23.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for dbt_autofix-0.2.0.tar.gz
Algorithm Hash digest
SHA256 630515976a8677385af0b9e1e255dbb089dda4e99f58d89e67efa9981bf7dcaf
MD5 07648167bb9bf52a1a8ab6d3c1bfd9e5
BLAKE2b-256 fd2d1cfe69fbb1c7e865a89f7ccae07660474deb3e7d3870a60535e1c22bc26f

See more details on using hashes here.

Provenance

The following attestation bundles were made for dbt_autofix-0.2.0.tar.gz:

Publisher: release.yml on dbt-labs/dbt-autofix

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

File details

Details for the file dbt_autofix-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: dbt_autofix-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 15.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for dbt_autofix-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cb577d17f1b897e434fce2abdcdd67c50eb6cba9b9773907b3229a6d9d813de0
MD5 6e603031088e01f954a4eb0bae1a020d
BLAKE2b-256 025e6c55c7a742b1ece33b87998a5c66c988c9487907f8a674512f4616f29c2a

See more details on using hashes here.

Provenance

The following attestation bundles were made for dbt_autofix-0.2.0-py3-none-any.whl:

Publisher: release.yml on dbt-labs/dbt-autofix

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