Após fazer push deste código, rode na VPS:
cd /opt/airflow
docker compose down
docker compose build
docker compose up -dIsso vai instalar o astronomer-cosmos[dbt-postgres]==1.7.5.
O Cosmos usa Airflow Connections em vez de Airflow Variables para credenciais.
- Acesse o Airflow UI:
http://seu-servidor:8080 - Vá em Admin → Connections
- Clique em + para adicionar nova connection
- Preencha os campos:
Connection Id: postgres_prod
Connection Type: Postgres
Host: <valor de dbt_db_host_prod>
Schema: powerplants
Login: <valor de dbt_db_user_prod>
Password: <valor de dbt_db_password_prod>
Port: 5432
- Clique em Save
docker compose exec airflow-scheduler bash
airflow connections add 'postgres_prod' \
--conn-type 'postgres' \
--conn-host '44.199.229.137' \
--conn-schema 'powerplants' \
--conn-login 'pggr1dc0_us3rdb' \
--conn-password 'SUA_SENHA_AQUI' \
--conn-port 5432
exitAguarde ~30 segundos para o Airflow detectar as novas DAGs:
dbt_run_staging_cosmosdbt_run_int_mart_cosmos
- Na UI do Airflow, clique em
dbt_run_staging_cosmos - Clique em Trigger DAG
- Veja na Graph View: cada modelo dbt aparece como uma "caixinha" individual!
Depois que confirmar que as novas DAGs funcionam, você pode desativar as antigas:
dbt_run_staging(versão antiga)dbt_run_int_mart(versão antiga)
Ou deletar os arquivos:
cd /opt/airflow
rm dags/dbt_run_staging.py
rm dags/dbt_run_int_mart.py✅ Cada modelo = 1 task (fácil monitoramento) ✅ Dependências automáticas entre modelos ✅ Task Groups para organização visual ✅ Logs individuais por modelo ✅ Grid view mostra todas as tasks em cascata ✅ Retry granular (só o modelo que falhou)
Erro: "Connection 'postgres_prod' not found"
- Verifique se criou a connection no passo 2
Erro: "dbt executable not found"
- Verifique se dbt está instalado:
docker compose exec airflow-scheduler dbt --version
DAG não aparece
- Verifique logs:
docker compose logs airflow-scheduler | grep cosmos - Aguarde 30 segundos para scan de DAGs