codeforkjeff / dbt-sqlite

A SQLite adapter plugin for dbt (data build tool)
Apache License 2.0
78 stars 13 forks source link

ImportError: cannot import name 'DatabaseException' from 'dbt.exceptions' with dbt 1.4 #37

Closed vdl-vciriza closed 1 year ago

vdl-vciriza commented 1 year ago

This issue has appeared since version 1.4 of dbt-core

codeforkjeff commented 1 year ago

Hi, thanks for reporting this! Here's a pre-release version to try with 1.4.x. Could you please try it out and let me know if you encounter any further errors? I suspect there are more under-the-hood changes in dbt that this adapter might need to handle.

https://pypi.org/project/dbt-sqlite/1.4.0a1/

vdl-vciriza commented 1 year ago

Hi Jeff,

Sorry for taking so long to answer: It works

I installed 1.4.0.a1 and it works like a charm.

Thanks for resolution and the speed to take care of it.

Victor Ciriza | Chef du groupe Données (pôle GSD) @.*** Direction du logement, de l'environnement et de l'architecture | Service d’organisation et d’informatique Avenue de Sévelin 46 | CP 5032 – 1002 Lausanne | T +41 21 315 26 32 | Webhttp://www.lausanne.ch/ | Facebookhttps://www.facebook.com/villedelausanne | Twitterhttps://twitter.com/communelausanne | YouTubehttps://www.youtube.com/user/CommuneLausanne | App mobilehttp://www.lausanne.ch/mobile

De : Jeff Chiu @. Envoyé : mercredi, 1 février 2023 08:36 À : codeforkjeff/dbt-sqlite @.> Cc : Ciriza Victor @.>; Author @.> Objet : Re: [codeforkjeff/dbt-sqlite] ImportError: cannot import name 'DatabaseException' from 'dbt.exceptions' with dbt 1.4 (Issue #37)

Hi, thanks for reporting this! Here's a pre-release version to try with 1.4.x. Could you please try it out and let me know if you encounter any further errors? I suspect there are more under-the-hood changes in dbt that this adapter might need to handle.

https://pypi.org/project/dbt-sqlite/1.4.0a1/

— Reply to this email directly, view it on GitHubhttps://github.com/codeforkjeff/dbt-sqlite/issues/37#issuecomment-1411589493, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A25YSQD3LZL42M3K3P6G6PDWVIG4ZANCNFSM6AAAAAAUMCSPNU. You are receiving this because you authored the thread.Message ID: @.**@.>>

DustinMoriarty commented 1 year ago

1.4.0a1 is a minor release. The problem is that dbt-sqlite 1.4.0 is not released yet and the setup.py for 1.3.0 is not restrictive enough on requirements so the package manager thinks that dbt-sqlite 1.3.0 is compatible with dbt-core 1.4.0.

There is not a good way to resolve this now that 1.3.0 is released and always available to package managers (unless you pull it from pypi which causes too many other problems). However, we can prevent this problem in the future by avoiding using >= in the setup.py. All dependency requirements should have an upper and lower bound. I would suggest preventing similar problems in the future by limiting dependencies on the minor version level (e.g. >=1.3.0,<1.4).

codeforkjeff commented 1 year ago

I've released v1.4.0 to pypi. No changes from 1.4.0.a1.

I'm not sure that setting an upper bound on the dbt-core dependency is a good idea for this project. I work on this sporadically in my free time and I didn't get around to releasing a 1.3.x adapter for a long while, but the 1.2.x adapter still worked in that case.

The version recommendations are stated on the README.

I think being able to install a potentially broken adapter is better than not being able to install a potentially working adapter. I don't think that's always true, but it makes sense to me for this particular project.