In my dbt-Redshift project, I have a model M with two parents, A and B.
Due to an unexpected upstream issue, my production dbt Run saw the run of A succeed, but the run of B failed. Because B failed, the subsequent run of M was skipped, as expected. What I did not expect was that M would go missing from my production Redshift schema!
It seems that the success of A dropped the M table due to Redshift’s schema binding, while the failure of B prevented dbt from recreating M. Ideally, a failure of either parent would induce a rollback of the dropping of M, but I’m not sure dbt’s current transactional system supports this.
Has anyone encountered this before, or have any tips on how to manage this scenario?