📝

uvを使ったdbt Coreの導入手順

に公開

dbt公式の手順では、

  • Docker
  • pip
  • source

でのdbt Core導入手順が掲載されています。
本記事ではuvを用いたdbt Core導入手順を紹介します。

Requirements

  • macOS 14.5
  • Apple M1+ CPU (not Intel Mac)
  • zsh

Setup

Homebrew settings

Install Homebrew

Homebrewをインストールします。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Install packages for macOS

uvをインストールします。

brew install uv
misc.
brew install git gh

uv settings

Create dbt Project directory

dbt Projectのディレクトリを作成します。

mkdir ~/Development
cd ~/Development
uv init example-dbt-project --bare

Install Python with uv

2025-05-05現在、Python 3.13系の最新バージョンを確認します。

uv python list --all-versions | grep -e "3\.13\."

# Results
# cpython-3.13.3-macos-aarch64-none                   <download available> <- target version
# cpython-3.13.3+freethreaded-macos-aarch64-none      <download available>
# cpython-3.13.2-macos-aarch64-none                   <download available>
# cpython-3.13.2+freethreaded-macos-aarch64-none      <download available>
# cpython-3.13.1-macos-aarch64-none                   <download available>
# cpython-3.13.1+freethreaded-macos-aarch64-none      <download available>
# cpython-3.13.0-macos-aarch64-none                   <download available>
# cpython-3.13.0+freethreaded-macos-aarch64-none      <download available>

Python 3.13系の最新バージョンをインストールします。

# Template
uv python install <latest-version-of-python-3.13-series>

# e.g.
uv python install 3.13.3

Pin to a specific Python version

Pythonバージョンを固定します。

cd ~/Development/example-dbt-project
uv python pin 3.13.3

Install Python packages

dbt関連のPythonパッケージをインストールします。
データ環境はBigQueryを使用します。

cd ~/Development/example-dbt-project
uv add dbt-core dbt-bigquery

[Optional]Install Python packages for development

SQLFluffなど、開発に関するPythonパッケージは、開発依存パッケージとして別でインストールします。
この対応で、本番環境にデプロイ時に開発依存パッケージを除外することができます。

cd ~/Development/example-dbt-project
uv add --dev sqlfluff sqlfluff-templater-dbt

Create virtual environment(.venv)

仮想環境を作成します。

cd ~/Development/example-dbt-project
uv sync

以上までの手順で、ディレクトリ、ファイルは以下の構成となります。

~/Development
    ┗ example-dbt-project
        ┣ .venv/          : 仮想環境
        ┣ .python-version : Pythonバージョンを管理するファイル
        ┣ pyproject.toml  : Python構成ファイル
        ┗ uv.lock         : プロジェクトの依存関係を管理するロックファイル

Execute dbt command

Without activating virtual environment

仮想環境を起動せずに仮想環境下のコマンドを実行する場合は、 uv run を使用します。
単発でコマンドを実行する場合に役に立ちます。
以下は仮想環境を起動せずにdbtのバージョンを確認した例です。

cd ~/Development/example-dbt-project

# check dbt version
uv run dbt -V

# Results
# Core:
#   - installed: 1.9.4
#   - latest:    1.9.4 - Up to date!
# 
# Plugins:
#   - bigquery: 1.9.1 - Up to date!

Activate virtual environment

仮想環境を起動すると、ターミナル操作と同様のコマンドを実行できます。
コマンドを連続で実行する場合に役に立ちます。
以下は仮想環境を起動後、dbtのバージョンを確認した例です。

cd ~/Development/example-dbt-project

# Activate virtual environment
. .venv/bin/activate

# Check dbt version
dbt -V

# Results
# Core:
#   - installed: 1.9.4
#   - latest:    1.9.4 - Up to date!
# 
# Plugins:
#   - bigquery: 1.9.1 - Up to date!

Deactivate virtual environment

仮想環境を停止したい場合は、以下を実施します。

# Deactivate virtual environment
deactivate

Initialize dbt project

初めてdbtプロジェクトを作成する場合は、以下を実施します。

# Template
cd <any directory>
uv run dbt init <dbt_project_name> --profiles-dir ./

# e.g.
cd ~/Development/example-dbt-project
uv run dbt init example_dbt_project --profiles-dir ./

以上でuvを利用したdbt Coreの導入は完了です。
このあとはデータ接続環境に合わせてdbt環境の構築を実施してください。
(以下、主要な接続先の環境構築手順を載せておきます。)

Update components

uv

uvのバージョンを最新に更新します。

# 実行場所はどこでもOK
brew update
brew upgrade

Python

Pythonのバージョンは .python-version で管理しています。
PythonのバージョンアップはInstall Python with uvおよびPin to a specific Python versionと同様の手順を実施します。

# Search the latest version of Python
uv python list --all-versions | grep -e "3\.13\."

## Results(as of December 5, 2025)
# cpython-3.13.10-macos-aarch64-none                  <download available> <- target version
# cpython-3.13.10+freethreaded-macos-aarch64-none     <download available>
# cpython-3.13.9-macos-aarch64-none                   <download available>
# cpython-3.13.9-macos-aarch64-none                   <download available>
# cpython-3.13.9+freethreaded-macos-aarch64-none      <download available>
# cpython-3.13.8-macos-aarch64-none                   <download available>
# cpython-3.13.8+freethreaded-macos-aarch64-none      <download available>
# ...

# Install the latest version of Python
uv python install 3.13.10

# Pin to the latest version of Python
cd ~/Development/example-dbt-project
uv python pin 3.13.10

仮想環境(.venv)が存在する場合は、仮想環境のPython Interpreterのバージョンを更新する必要があるので以下を実施します。

# Template
uv venv --python <latest-version-of-python-3.13-series>

# e.g.
uv venv --python 3.13.10

Python packages

Pythonパッケージは pyproject.toml uv.lock で管理しています。
仮想環境のPython Interpreterの更新をした場合やPythonパッケージのバージョンアップをしたい場合は、以下のコマンドを実行します。

cd ~/Development/example-dbt-project
uv lock --upgrade
uv sync

Troubleshooting

dbtコマンドが実行できない

1. Python Interpreterの設定

Visual Studio Codeの場合、Python Interpreterの設定がおかしい場合があります。
.venv/bin/python を参照するようにPython Interpreterの設定を変えてみてください。

2. Pythonバージョン不一致

uvでインストールしたPythonバージョンと仮想環境が参照しているPythonバージョンが不一致の可能性があります。
以下を実施して不一致を解消します。

# Template
uv venv --python <latest-version-of-python-3.13-series>
uv sync

# e.g.
cd ~/Development/example-dbt-project
uv venv --python 3.13.3
uv sync

3. 仮想環境を作り直す

上記手順でも改善しない場合は、仮想環境の再構築を試してみてください。

cd ~/Development/example-dbt-project

# 仮想環境を削除し、空の状態で作成し直す
uv venv

# Pythonパッケージを再インストールする
uv sync

APPENDIX

Discussion