-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Bug] dbtCore - after upgrading, can't run DBT #10135
Comments
@moseleyi Could you run Also - you might try installing all of these by name, along with the
|
@jtcohen6 I have the same issue, this is the output you asked for:
The issue persists when I uninstall and then reinstall |
Thanks @rubenhelsloot! Are you also using Python 3.12? |
My output:
Some people in my team got it working but maybe because it was clean install, they never had to use python packages before. Perhaps some dependencies of dbt are not updated with the latest update? |
Surprisingly dbt 1.7.13 works fine with Python 3.12.3 - I checked on my other laptop |
@rubenhelsloot! Are you also using Windows? @moseleyi Which commands are you using to installing dbt? Are you using a virtual environment with The following files and commands worked for me:
Create this file:
Run these commands: python3 -m venv env
source env/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
source env/bin/activate
python --version
dbt --version
deactivate Output:
|
In case helpful, when I upgraded to dbt-core 1.8, I had the same issue on Python 3.9.6 (OS: Mac Ventura 13.4.1), and it was resolved on upgrade to Python 3.12.3. |
I don't use venv nor poetry. At first I just upgraded All of them produce this error |
Reproduced with Python 3.10.
|
Had the same issue with Python 3.9.18 -> solved when I upgraded to Python 3.11.6 I use poetry and upgraded through
|
I was hoping it was about python issue but seems like it's not. It could be a dependency that should be updated with dbt core update but isn't being forced to update? |
I also found this: AltimateAI/vscode-dbt-power-user#1029 but we all have |
A bit more info: I had the same problem, I can reproduce at will, Python 3.11.8: Install Bump to
Delete venv, same requirements.txt, pip install - get 1.8, works fine. In the broken venv, the factory.py (and other) files in dbt/adapters is missing. You should be able to reproduce these steps exactly with a codespace off https://github.com/brabster/pypi_vulnerabilities |
Thanks for this info @brabster 🏅 Could you share the contents of your |
@dbeatty10 Clean venv, set to dbt-bigquery==1.7.7 to force pre-1.8.0 and install. Works. |
Thank you @brabster ! 🏅 I was able to reproduce the error using your description. See "reprex" below for full details. @jtcohen6 when I tried running
|
When I got the same error as the reported above, the following workaround resolved it for me: python -m pip uninstall -y dbt-adapters
python -m pip install --upgrade dbt-core dbt-common dbt-adapters
dbt --version The The 2nd command can be replaced with whichever command you use to install the requirements for dbt 1.8. |
Can you run 1.7.x adapter implementations with dbt 1.8.x core/adapters? If not then that might explain @ann8ty problem, looks like they have pinned exact 1.7.17 Pg/Redshift adapter versions. More general question maybe aimed at @dbeatty10 - If you folks are decoupling versions of adapter implementations from core and adapters packages, how can a user tell whether different versions are compatible? Probably some docs somewhere I haven't found? |
pip install --upgrade dbt-adapters run this command, hopefully it will solve the issue |
|
Simply upgrading |
Re-installing |
After trying all above solutions, Only upgrading python to v3.12 worked for me. 🤷
|
After upgrading to dbt 1.8.4, I also got the error:
I was able to correct this by removing the current adapters and installing it again:
All looks fine now. I am using python
Thanks for helping us resolve this. |
I have some observations to throw in. It appears that the problem is intermittent. I've had the same CI run fail, and then after retrying it had passed. I used a On the same GitHub Actions run, I had three workflows that used dbt install identical steps. One out of three runs had failed with the Then, I clicked "Re-run failed," and it passed.
|
@moltar are you caching the dependencies in the GH Action? I would suspect that for causing intermittent problems as the state of what's ending up on in the filesystem (and then being cached) may be quite unpredictable. I've seen no issues in my GH actions, but I don't cache. If you are caching, maybe try disabling that to get a clean install from scratch? |
@brabster Yup: - name: Install Python
uses: actions/setup-python@v4
with:
cache: pip
python-version: '3.12' |
@brabster Removed caching, but still get random failures. |
@moltar strange - if the root cause I identified earlier is true, clean install should not have a problem (unless something else is going on as well to confound the problem). Curious, so happy to take a look if you can share the details of the workflow between the setup python task the step that fails like what's the specific install command, and any logs you can share about the install/update process? |
Same issue after upgrading dbt within our Airflow stack. We have Python
|
Had this issue with my dbt with oracle adapter. The following code fixed it: |
* fix: add dbt-postgres explictly to dbt-deps group * ci: ignore build cache during pre-releases * fix: temporary disable test to allow merging * ci: update paths in dbt release task * chore: remove dbt-core and dbt-adapters and let dbt-postgres handle dependencies * chore: add dbt-adapters to deps explicitly * chore: update dbt-core manually required by dbt 1.8 see dbt-labs/dbt-core#10135 * ref: add some extra commands to makefile * chore: update dbt deps * chore: remove dbt-osmosis, upgrade deps once more * ref: set elementary tests as warnings * chore: run pre-commit on failing task * chore: remove references to non-existing dirs in dbt_project.yml they were polluting the logs with warning * chore: move existing tests to data_tests directory * chore: update python and pre-commit dependencies * chore: rename tests to data_tests in dbt 1.8 The `tests` config has been renamed to `data_tests`. Please see https://docs.getdbt.com/docs/build/data-tests#new-data_tests-syntax for more * ref: move dbt settings from profiles to dbt_project as per warnings in versions 1.8.1
In my case, after many trials and errors, I discovered that if you reinstall |
closes: #1344 This PR is doing below modification - Upgrade Python version to Python3.12 - Add `--force-reinstall` flag in pip install command - Install dbt-command separately based on suggestion: dbt-labs/dbt-core#10135 (comment) Success CI job: https://github.com/astronomer/astronomer-cosmos/actions/runs/12165978965/job/33931200107?pr=1364
Hit this issue too when bumping dbt from 1.7.x to 1.9.x because I had to bump dbt-duckdb (MotherDuck deprecates 1.0). |
pip install dbt-fabric fixed it for me, it adds the adapter for fabric. It's unfortunate it is imported into the cli functionality, because it requires you to install dbt-fabric, even though you are using a different db to interact with (say BigQuery). |
I can confirm what @hanslemm wrote. We have a CICD pipeline that tries to build / install dependencies using Poetry and it only fails when our pipeline installs dbt-adapters and then tries to upgrade dbt-core. Indeed, the pipelines that use a Docker image that already contains dbt-core (but not yet dbt-adapters) do the following:
The pipelines that use an 'empty' Docker image do the following:
I can't confirm 100% that this "installing/updating" order is the root cause of it but at least I observe the same thing as what @hanslemm describes. Detail of the poetry tracesThe CICD run that works: • Installing pytz (2024.2)
• Installing requests (2.32.3)
• Installing tzdata (2024.2)
• Installing zipp (3.21.0)
• Installing click (8.1.7)
• Installing dbt-common (1.10.0)
• Installing google-api-core (2.23.0)
• Installing google-crc32c (1.6.0)
• Installing grpcio-status (1.62.3)
• Installing importlib-metadata (6.11.0)
• Installing more-itertools (10.5.0)
• Installing packaging (24.2)
• Installing pandas (2.2.3)
• Installing pyarrow (18.1.0)
• Installing pydantic (2.10.2)
• Installing pyyaml (6.0.2)
• Installing daff (1.3.46)
• Installing db-dtypes (1.3.1)
• Installing dbt-adapters (1.7.0)
• Installing dbt-extractor (0.5.1)
• Installing dbt-semantic-interfaces (0.5.1)
• Installing google-cloud-core (2.4.1)
• Installing google-resumable-media (2.7.2)
• Installing grpc-google-iam-v1 (0.13.1)
• Installing logbook (1.5.3)
• Installing minimal-snowplow-tracker (0.0.2)
• Installing networkx (3.4.2)
• Installing sqlparse (0.5.2)
• Installing dbt-core (1.8.7)
• Installing google-cloud-bigquery (3.27.0)
• Installing google-cloud-dataproc (5.15.1)
• Installing google-cloud-storage (2.18.2)
• Installing dbt-bigquery (1.8.2)
• Downgrading setuptools (69.5.1 -> 68.2.2) The CICD run that fails: • Updating pytz (2024.1 -> 2024.2)
• Installing tzdata (2024.2)
• Updating zipp (3.19.2 -> 3.21.0)
• Installing dbt-common (1.10.0)
• Updating google-api-core (2.19.1 -> 2.23.0)
• Updating google-crc32c (1.5.0 -> 1.6.0)
• Updating grpcio-status (1.62.2 -> 1.62.3)
• Updating more-itertools (10.3.0 -> 10.5.0)
• Updating packaging (24.1 -> 24.2)
• Installing pandas (2.2.3)
• Installing pyarrow (18.1.0)
• Updating pydantic (2.8.2 -> 2.10.2)
• Updating pyyaml (6.0.1 -> 6.0.2)
• Installing daff (1.3.46)
• Installing db-dtypes (1.3.1)
• Installing dbt-adapters (1.7.0)
• Updating dbt-semantic-interfaces (0.4.4 -> 0.5.1)
• Updating google-resumable-media (2.7.1 -> 2.7.2)
• Updating networkx (3.3 -> 3.4.2)
• Updating sqlparse (0.4.4 -> 0.5.2)
• Updating dbt-core (1.7.0 -> 1.8.7)
• Updating google-cloud-bigquery (3.25.0 -> 3.27.0)
• Updating google-cloud-dataproc (5.10.1 -> 5.15.1)
• Updating google-cloud-storage (2.18.0 -> 2.18.2)
• Updating dbt-bigquery (1.7.6 -> 1.8.2) |
Works for me with this setup. requirements-dbt.txt:
packages.yml:
Dockefile:
|
Yes, what I wrote above and tried to explain (but maybe too fuzzily and not clearly enough?) is:
|
Eh, sorry. I overlooked the context (expand all comments). |
These lines worked for me: pip3 install --force-reinstall dbt-duckdb
pip3 install --force-reinstall dbt-core So it seems forcing the reinstalling of these packages fixes the issue. |
Still seems like the explanation I gave in this May 17, 2024 comment explains all the issues folks have seen. In a nutshell:
Why do the fixes work?
Maybe I missed something - any behaviour seen since not explained by that? (cc @dbeatty10?) It seems odd and non-default behaviour that these packages files end up in the same site_packages dir. Presumably that's a choice dbt Labs made as part of the refactor - and it appears to have this unfortunate side effect (darned alphabet!). Perhaps if a future version moved the directory that dbt-adapters lands its files in site_packages, the problem could actually be fixed. If I get a minute I might try a PR to see. |
it should be --force-reinstall though :) |
Is this a new bug in dbt-core?
Current Behavior
I installed dbt-core, bigquery, and postgres, and then when typing
dbt --version
I get this error:This is after installing bigquery, postgres,
Expected Behavior
Should show the version of dbt packages
Steps To Reproduce
dbt --version
Relevant log output
No response
Environment
Which database adapter are you using with dbt?
No response
Additional Context
No response
The text was updated successfully, but these errors were encountered: