django.db doesn't wrap / replace psycopg2.InterfaceError
|Reported by:||Antoine Pitrou||Owned by:||nobody|
|Component:||Database layer (models, ORM)||Version:||1.4|
|Has patch:||no||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
django.db currently only wraps the backend's
IntegrityError. However, psycopg2 can raise a "psycopg2.InterfaceError: connection already closed" when trying to run a query more than once against an unavailable (e.g. stopped) database. This means catching
django.db.DatabaseError isn't enough to catch all possible runtime errors (other than programming errors).
It would be nice if Django also replaced psycopg2's
InterfaceError with a generic Django exception.
(note: slightly related with issue #15802)