當使用 dbt 遇到 error 怎麼辦呢?以下提供本人常用的途徑
model SQL 寫錯→去 target/compiled/{project}/models/ 看每個 model compile 後的 SQL 語法
優先: 判斷 error 原因並查找有關 dbt 文件
次要: 查 google 或有網路搜尋功能的機器人(因 chatgpt 資料只餵到 2021 內容比較舊),可能幫你找到對應的 stackoverflow, git issue 或 dbt 的論壇 dbt Community Forum
最後還是找不到: 可以去 dbt slack 看有沒有人討論你遇到的問題
當我在本機端開發 dbt model 時,免不了試跑 dbt run,以及切換 git branch,久而久之下來,你的 target 資料夾存了很多 dbt 記錄檔,某天測試時卻突然出現類似以下錯誤:
第一次遇到時,心裡的 os 就是: 我確定 project 內沒有重複的 model,已經用 custom schema, alias 改名,而且昨天也跑的好好的,怎麼還出現重複 model 名字的錯誤? 論壇和文件也沒什麼資訊…。無意間發現 dbt clean, dbt deps 兩個指令,輸入後錯誤竟然就修復了!
馬上去查這兩個指令意思,研究 dbt 幾個月竟然沒看過
→ 所以 dbt clean 會把你本機的兩個資料夾內的內容清空,然後你要再重新安裝要用的 packages
為何這樣輸入就可以解決上面問題?
其實我還沒找到真正的原因,但推測有關的地方:
總而言之,若遇到偶爾一次的錯誤,先讓你的環境變乾淨再執行試試看