dbt

【dbt】1.7.xから1.8.xに上げる際の注意点

dbt記事のアイキャッチ
hama-matcha

はじめに

dbtの1.7.xが2024/11/1にEOLとなり1.8.xへとバージョンを上げる必要がでてきました。

普段のノリで pip install -U dbt-core dbt-snowflake でアップデートできると思っていたのですが、

いざアップデート後dbtを動かすとエラーで動かない現象がありました。

そこで、バージョンを上げる際に発生したエラーとその回避方法を載せておきます。

エラーの再現

最初は1.7.xがインストールされていることを確認します。

dbt --version

Core:
  - installed: 1.7.10
  - latest:    1.8.9  - Update available!


  Your version of dbt-core is out of date!
  You can find instructions for upgrading here:
  https://docs.getdbt.com/docs/installation

Plugins:
  - snowflake: 1.7.3 - Update available!

  At least one plugin is out of date or incompatible with dbt-core.
  You can find instructions for upgrading here:
  https://docs.getdbt.com/docs/installation

この状態で1.8.xにアップデートしてみます。

pip install -U dbt-core dbt-snowflake

ここで再度 dbt --version を叩いてみます。

dbt --version

Traceback (most recent call last):
 ~~~
from dbt.adapters.factory import adapter_management, register_adapter, get_adapter
ModuleNotFoundError: No module named 'dbt.adapters.factory'

これでエラーの再現ができました。

原因

dbt-adaptersのアップデートが1.7から1.8にかけてうまくできていない。
(依存関係として一緒にアップデートできてないみたいです。)

参考:https://github.com/dbt-labs/dbt-core/issues/10135#issuecomment-2113728550

解決策

一度古いdbt-adaptersを削除して1.8.xと一緒に再インストールしてみます。

# 一度 dbt-adapters をアンインストール
pip uninstall -y dbt-adapters

# dbt-adaptersを含めて再度アップデート&インストール
pip install -U dbt-core \
               dbt-snowflake \
               dbt-adapters

dbt --version を叩いて確認してみます。

dbt --version

Core:
  - installed: 1.8.9
  - latest:    1.8.9 - Up to date!

Plugins:
  - snowflake: 1.8.4 - Up to date!

さいごに

今回はdbtにおける1.7.xから1.8.xへのアップデートに関して、

そのまま pip install -Uを実行するとエラーになる現象の解決策を残しました〜

dbtのアップデートで困っている人がこの記事で問題解決できると幸いです。

以上hamaでした〜

_hama
_hama
ほのぼのデータエンジニア
記事URLをコピーしました