diff --git a/trytond/backend/postgresql/database.py b/trytond/backend/postgresql/database.py index 3015b2b186..7c459e6600 100644 --- a/trytond/backend/postgresql/database.py +++ b/trytond/backend/postgresql/database.py @@ -9,7 +9,11 @@ from psycopg2.extensions import cursor as PsycopgCursor from psycopg2.extensions import ISOLATION_LEVEL_SERIALIZABLE from psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT from psycopg2.extensions import register_type, register_adapter -from psycopg2.extensions import UNICODE, AsIs, PYDATE, PYDATETIME, PYTIME +from psycopg2.extensions import UNICODE, AsIs +try: + from psycopg2.extensions import PYDATE, PYDATETIME, PYTIME +except ImportError: + PYDATE, PYDATETIME, PYTIME = None, None, None from psycopg2 import IntegrityError as DatabaseIntegrityError from psycopg2 import OperationalError as DatabaseOperationalError import time @@ -395,9 +399,12 @@ class Cursor(CursorInterface): return select register_type(UNICODE) -register_type(PYDATE) -register_type(PYDATETIME) -register_type(PYTIME) +if PYDATE: + register_type(PYDATE) +if PYDATETIME: + register_type(PYDATETIME) +if PYTIME: + register_type(PYTIME) register_adapter(Session, AsIs) register_adapter(float, lambda value: AsIs(repr(value))) register_adapter(Decimal, lambda value: AsIs(str(value)))