Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix DbtVirtualenvBaseOperator to use correct virtualenv Python path (#…
…1252) This PR addresses an issue where the `DbtVirtualenvBaseOperator` was executing dbt commands using the system-wide Python path instead of the virtualenv path. The root cause was that the self reference in the `run_subprocess` method was bound to a different instance than the one created during initialization, likely due to Airflow's DAG pickling mechanism. To resolve this, we've refactored the `invoke_dbt` and `handle_exception` methods to be properties. This ensures that they dynamically reference the correct method of the current instance at runtime, rather than being bound to a potentially stale instance from initialization. ## Related Issue(s) fix #1246 This may be related to issue #958 in version 1.5.0 ## Breaking Change? No ## Checklist - [x] I have made corresponding changes to the documentation (if required) - [ ] I have added tests that prove my fix is effective or that my feature works ## Additional Notes I acknowledge that ideally, a test should be added to reproduce the original issue and verify the fix. However, I found it challenging to create an appropriate test, especially considering that this might require an integration test with Airflow to properly simulate Airflow behavior. If there are suggestions for how to effectively test this scenario, I would greatly appreciate the guidance. I sincerely apologize for introducing this bug in the first place with PR #1200. I understand this has caused inconvenience, and I'm grateful for the opportunity to fix it. I kindly request a thorough review of these changes to ensure we've fully addressed the issue without introducing new problems.
- Loading branch information