diff --git a/README.md b/README.md index ae1d8e0..12a99e4 100644 --- a/README.md +++ b/README.md @@ -241,7 +241,7 @@ This bash script when executed from your local IDE will create model files in yo 2. Copy the macro into a statement tab into your local IDE, and run your code ```bash -source dbt_packages/codegen/bash_scripts/base_model_creation.sh "source_name" ["this-table","that-table"] +source dbt_packages/codegen/bash_scripts/base_model_creation.sh source_name table-1 table-2 table-3 ... ``` ## generate_model_yaml ([source](macros/generate_model_yaml.sql)) diff --git a/bash_scripts/base_model_creation.sh b/bash_scripts/base_model_creation.sh index 933ddd1..c0f8ca0 100644 --- a/bash_scripts/base_model_creation.sh +++ b/bash_scripts/base_model_creation.sh @@ -1,5 +1,15 @@ #!/bin/bash -echo "" > models/stg_$1__$2.sql +# Check if at least two arguments are provided (source_name and at least one table_name) +if [ "$#" -lt 2 ]; then + echo "Usage: $0 [table_name2 ... table_nameN]" + exit 1 +fi -dbt --quiet run-operation codegen.generate_base_model --args '{"source_name": "'$1'", "table_name": "'$2'"}' | tail -n +3 >> models/stg_$1__$2.sql +SOURCE_NAME=$1 +shift # Shift to leave only table names in "$@" + +for TABLE_NAME in "$@"; do + dbt --quiet run-operation codegen.generate_base_model --args '{"source_name": "'$SOURCE_NAME'", "table_name": "'$TABLE_NAME'"}' | tail -n +3 >> models/stg_${SOURCE_NAME}__${TABLE_NAME}.sql + echo "Generated model for table: $TABLE_NAME" +done