◾️はじめに
https://dk521123.hatenablog.com/entry/2023/11/20/230946
で、dbtのSeed(シード)を扱ったが、 今回は、そのSeedのdbt CLIを扱う。 なお、公式ドキュメントは、オプションが見づらい気がする
目次
【1】dbt seed 【2】オプション 1)--select 2)--full-refresh
【1】dbt seed
* CSVをロードしDBに挿入 => csv の内容を dbt model としてテーブル作成できる
https://docs.getdbt.com/reference/commands/seed
# seeds配下の全CSVをロードしてテーブル作成 $ dbt seed 02:27:44 Running with dbt=1.9.0 02:27:45 Registered adapter: postgres=1.9.0 02:27:45 Found 2 models, 4 data tests, 2 seeds, 429 macros 02:27:45 02:27:45 Concurrency: 1 threads (target='dev') 02:27:45 02:27:45 1 of 2 START seed file public.sample1 .......................................... [RUN] 02:27:45 1 of 2 OK loaded seed file public.sample1 ...................................... [INSERT 4 in 0.09s] 02:27:45 2 of 2 START seed file public.sample2 .......................................... [RUN] 02:27:45 2 of 2 OK loaded seed file public.sample2 ...................................... [INSERT 5 in 0.05s] 02:27:45 02:27:45 Finished running 2 seeds in 0 hours 0 minutes and 0.40 seconds (0.40s). 02:27:45 02:27:45 Completed successfully 02:27:45 02:27:45 Done. PASS=2 WARN=0 ERROR=0 SKIP=0 TOTAL=2
【2】オプション
1)--select
* 特定Seedで実行する
https://docs.getdbt.com/reference/commands/seed
$ dbt seed --select sample2 02:28:44 Running with dbt=1.9.0 02:28:44 Registered adapter: postgres=1.9.0 02:28:45 Found 2 models, 4 data tests, 2 seeds, 429 macros 02:28:45 02:28:45 Concurrency: 1 threads (target='dev') 02:28:45 02:28:45 1 of 1 START seed file public.sample2 .......................................... [RUN] 02:28:45 1 of 1 OK loaded seed file public.sample2 ...................................... [INSERT 5 in 0.10s] 02:28:45 02:28:45 Finished running 1 seed in 0 hours 0 minutes and 0.35 seconds (0.35s). 02:28:45 02:28:45 Completed successfully 02:28:45 02:28:45 Done. PASS=1 WARN=0 ERROR=0 SKIP=0 TOTAL=1
2)--full-refresh
* 既存シードテーブルを一度削除してから再度テーブルを作成
https://docs.getdbt.com/reference/resource-configs/full_refresh
# "[CREATE 5..." って言ってるから作り直しているっぽい $ dbt seed --select sample2 --full-refresh 02:35:07 Running with dbt=1.9.0 02:35:07 Registered adapter: postgres=1.9.0 02:35:08 Found 2 models, 4 data tests, 2 seeds, 429 macros 02:35:08 02:35:08 Concurrency: 1 threads (target='dev') 02:35:08 02:35:08 1 of 1 START seed file public.sample2 .......................................... [RUN] 02:35:08 1 of 1 OK loaded seed file public.sample2 ...................................... [CREATE 5 in 0.12s] 02:35:08 02:35:08 Finished running 1 seed in 0 hours 0 minutes and 0.37 seconds (0.37s). 02:35:08 02:35:08 Completed successfully 02:35:08 02:35:08 Done. PASS=1 WARN=0 ERROR=0 SKIP=0 TOTAL=1
使いどころ
* テーブルのデータ型を変えたい場合 * カラム定義が変わった場合 => オプションをつけないと以下のようなエラーになる ~~~~ 02:04:53 Database Error in seed sample2 (seeds/sample2.csv) column "remarks" of relation "sample2" does not exist LINE 2: ..."dbt_db"."public"."sample2" ("id", "name", "age", "remarks")... ~~~~
参考文献
https://qiita.com/n-gondo123/items/574da3fad45535b835a9
関連記事
dbt ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2023/06/30/000000
dbt ~ 環境設定編 ~
https://dk521123.hatenablog.com/entry/2023/12/16/152147
dbt ~ 環境設定 / Docker 編 ~
https://dk521123.hatenablog.com/entry/2024/10/11/230419
dbt ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/05/30/151003
dbt ~ 基本編 / Seed ~
https://dk521123.hatenablog.com/entry/2023/11/20/230946
dbt CLI ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2024/07/21/234811
dbt CLI ~ ドキュメント化 / dbt docs ~
https://dk521123.hatenablog.com/entry/2023/12/10/125512
dbt CLI ~ テーブル一覧表示 / dbt list ~
https://dk521123.hatenablog.com/entry/2025/04/13/222612
dbt seed 実行後、エラー「Cross-db references not allowed in postgres」が発生
https://dk521123.hatenablog.com/entry/2025/05/23/215144
jq コマンド ~ JSON を扱う ~
https://dk521123.hatenablog.com/entry/2020/02/01/000000