feat: dbt add download packages functions and logging functions
diff --git a/Dockerfile b/Dockerfile
index 81250fb..b97ee46 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -37,7 +37,7 @@
RUN make clean && make all
-FROM --platform=linux/amd64 mericodev/alpine-dbt-mysql:0.0.1
+FROM --platform=linux/amd64 mericodev/alpine-dbt:0.0.1
EXPOSE 8080
diff --git a/plugins/dbt/tasks/convertor.go b/plugins/dbt/tasks/convertor.go
index 2ada7c9..c65291e 100644
--- a/plugins/dbt/tasks/convertor.go
+++ b/plugins/dbt/tasks/convertor.go
@@ -33,6 +33,7 @@
)
func DbtConverter(taskCtx core.SubTaskContext) error {
+ log := taskCtx.GetLogger()
taskCtx.SetProgress(0, -1)
data := taskCtx.GetData().(*DbtTaskData)
models := data.Options.SelectedModels
@@ -101,6 +102,15 @@
return err
}
+ _, err = os.Stat("packages.yml")
+ if err == nil {
+ cmd := exec.Command("dbt", "deps")
+ err = cmd.Start()
+ if err != nil {
+ return err
+ }
+ }
+
dbtExecParams := []string{"dbt", "run", "--profiles-dir", projectPath}
if projectVars != nil {
jsonProjectVars, err := json.Marshal(projectVars)
@@ -113,18 +123,16 @@
dbtExecParams = append(dbtExecParams, "--select")
dbtExecParams = append(dbtExecParams, models...)
cmd := exec.Command(dbtExecParams[0], (dbtExecParams[1:])...)
- stdout, err := cmd.StdoutPipe()
- if err != nil {
- return err
- }
+ log.Info("dbt run script: ", cmd)
+ stdout, _ := cmd.StdoutPipe()
err = cmd.Start()
if err != nil {
return err
}
-
scanner := bufio.NewScanner(stdout)
for scanner.Scan() {
line := scanner.Text()
+ log.Info(line)
if strings.Contains(line, "of") && strings.Contains(line, "OK") {
taskCtx.IncProgress(1)
}
@@ -133,6 +141,11 @@
return err
}
+ cmd.Wait()
+ if !cmd.ProcessState.Success() {
+ log.Error("dbt run task error, please check!!!")
+ }
+
return nil
}