sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:postgres
Solution 1:
The URI should start with postgresql://
instead of postgres://
. SQLAlchemy used to accept both, but has removed support for the postgres
name.
Solution 2:
SQLAlchemy 1.4 removed the deprecated postgres
dialect name, the name postgresql
must be used instead now. The dialect is the part before the ://
in the URL. SQLAlchemy 1.3 and earlier showed a deprecation warning but still accepted it.
To fix this, rename postgres://
in the URL to postgresql://
.
This error currently shows up when working with Heroku, which uses postgres
in the DATABASE_URL
they provide, which you probably use for SQLALCHEMY_DATABASE_URI
. To work around this until they update it, update the variable in the Heroku dashboard to use postgresql
.