発生したエラー
dbt run実行時に以下のようなエラーが発生した。
15:12:24 Encountered an error:
Compilation Error
dbt found two macros named "materialization_materialized_view_default" in the
project "dbt".
To fix this error, rename or remove one of the following macros:
- macros/materializations/models/materialized_view/materialized_view.sql
- macros/materializations/models/materialized_view.sql
エラーメッセージを頼りに確認
以下の2つのファイルに注目してみる
- macros/materializations/models/materialized_view/materialized_view.sql
- macros/materializations/models/materialized_view.sql
$ cd macros
$ tree -L 1
.
該当するファイルは無さそう。
エラーのことは忘れて、新しいディレクトリにdbtプロジェクトを作成して「dbt run」を実行したが同じエラーが出た。
dbtのバージョンを調べてみる
$ dbt --version
(一部抜粋)
Core:
- installed: 1.6.3
Plugins:
- snowflake: 1.6.2
バージョンを変えてみた。
$ python3 -m pip install dbt-core==1.8.6 dbt-snowflake==1.8.3
バージョンは変わっているか確認しよう、、、できなかった
$ dbt --version
(一部抜粋)
ModuleNotFoundError: No module named 'dbt.adapters.factory'
dbt-adaptersをアンインストール後、インストールした。
dbt-adaptersのバージョンはとりあえず最新にした。
$ python3 -m pip uninstall dbt-adapters
$ python3 -m pip install dbt-adapters==1.8.0
$ dbt --version
(一部抜粋)
Core:
- installed: 1.8.6
Plugins:
- snowflake: 1.8.3
dbt runを実行してみる
$ dbt run
(一部抜粋)
Completed successfully
解決したっぽい
エラーとなる状況を再現しよう
$ python3 -m pip install dbt-core==1.6.3 dbt-snowflake==1.6.2
(一部抜粋)
Successfully uninstalled mashumaro-3.9
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
dbt-common 1.11.0 requires mashumaro[msgpack]<4.0,>=3.9, but you have mashumaro 3.8.1 which is incompatible.
Successfully installed mashumaro-3.8.1
dbt-common 1.11.0は、mashumaroのバージョンが3.9以上かつ4.0未満であること求めているっぽい。
mashumaroのバージョン3.9をインストールする。
$ python3 -m pip install mashumaro==3.9
(一部抜粋)
Successfully uninstalled mashumaro-3.8.1
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
dbt-core 1.6.3 requires mashumaro[msgpack]~=3.8.1, but you have mashumaro 3.9 which is incompatible.
Successfully installed mashumaro-3.9
dbt-core 1.6.3は、mashumaroのバージョン3.9では互換性がないっぽい。
この辺りが原因で「dbt run」が実行できなかった?