Help! I'm seeing "require-dbt-version was unexpected"

#1

What happened?

Hey there - require-dbt-version is new in 0.13.0! If you’ve included this config in your project, make sure you’ve updated to version 0.13.0 wherever you’re running dbt.

If this config is coming from a dependency like dbt-utils, I’d recommend pinning your package to a specific revision.

What does that mean?

Glad you asked! The dbt deps command will pull in the latest code of a package, given the revision that you’ve specified in your packages.yml file. If you’ve specified master as your revision in your packages.yml file, then dbt will pull the latest version of master from the specified package when you run dbt deps. This probably isn’t desirable, as it means that the code that runs in your project can change out from under you.

Instead, you should always pin your packages to a specific revision. In practice, that looks like:

packages:
  - git: "https://github.com/fishtown-analytics/dbt-utils.git"
    revision: 0.1.22

The revision: 0.1.22 line points to a specific release of the dbt-utils package. You can find more information about pinning a package to a specific version in the docs.

Why did this happen?

As we build new functionality into dbt, we’ll want to leverage it in open source packages like dbt-utils. The require-dbt-version config is going to be super helpful here, as it’s possible that the behavior of dbt will change between versions. The require-dbt-version config will help ensure that the packages that dbt is running are compatible with the installed version of dbt.

Unfortunately, versions of dbt < 0.13.0 don’t expect to see this config, and raise an exception accordingly. As they say: the best time to require a specific dbt version was 10 releases ago; the second best time is now. Check out the docs on require-dbt-version here.

1 Like