altairbow / django-db-connection-pool

Database connection pool component library for Django
https://pypi.python.org/pypi/django-db-connection-pool/
MIT License
181 stars 24 forks source link

Postgis backend broken (python 3.12.1, django==5.0.1, psycopg[binary,pool]==3.1.17, sqlalchemy==2.0.25) #57

Open SkyHyve opened 5 months ago

SkyHyve commented 5 months ago

Postgres backend works (except for postgis fields) but postgis backend does not. Tried to add 'server_version': '14.10' to DATABASES['default'] in django settings but does not help

portal-channels-1 | 2024-01-17 09:34:28,772 DEBUG core.py:98 dj_db_conn_pool.core.mixins.core.get_new_connection() default's pool has been created, parameter: {'pre_ping': True, 'echo': False, 'timeout': 30, 'recycle': 300, 'pool_size': 8, 'max_overflow': 32} portal-channels-1 | 2024-01-17 09:34:28,784 DEBUG core.py:109 dj_db_conn_pool.core.mixins.core.get_new_connection() got default's connection <psycopg.Connection [IDLE] (host=postgresql database=portal) at 0x7f172b723650> from its pool portal-channels-1 | Exception in thread django-main-thread: portal-channels-1 | Traceback (most recent call last): portal-channels-1 | File "/usr/local/lib/python3.12/threading.py", line 1073, in _bootstrap_inner portal-channels-1 | self.run() portal-channels-1 | File "/usr/local/lib/python3.12/threading.py", line 1010, in run portal-channels-1 | self._target(*self._args, self._kwargs) portal-channels-1 | File "/usr/local/lib/python3.12/site-packages/django/utils/autoreload.py", line 64, in wrapper portal-channels-1 | fn(*args, *kwargs) portal-channels-1 | File "/usr/local/lib/python3.12/site-packages/daphne/management/commands/runserver.py", line 97, in inner_run portal-channels-1 | self.check_migrations() portal-channels-1 | File "/usr/local/lib/python3.12/site-packages/django/core/management/base.py", line 574, in check_migrations portal-channels-1 | executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS]) portal-channels-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ portal-channels-1 | File "/usr/local/lib/python3.12/site-packages/django/db/migrations/executor.py", line 18, in init portal-channels-1 | self.loader = MigrationLoader(self.connection) portal-channels-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ portal-channels-1 | File "/usr/local/lib/python3.12/site-packages/django/db/migrations/loader.py", line 58, in init portal-channels-1 | self.build_graph() portal-channels-1 | File "/usr/local/lib/python3.12/site-packages/django/db/migrations/loader.py", line 235, in build_graph portal-channels-1 | self.applied_migrations = recorder.applied_migrations() portal-channels-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ portal-channels-1 | File "/usr/local/lib/python3.12/site-packages/django/db/migrations/recorder.py", line 89, in applied_migrations portal-channels-1 | if self.has_table(): portal-channels-1 | ^^^^^^^^^^^^^^^^ portal-channels-1 | File "/usr/local/lib/python3.12/site-packages/django/db/migrations/recorder.py", line 63, in has_table portal-channels-1 | with self.connection.cursor() as cursor: portal-channels-1 | ^^^^^^^^^^^^^^^^^^^^^^^^ portal-channels-1 | File "/usr/local/lib/python3.12/site-packages/django/utils/asyncio.py", line 26, in inner portal-channels-1 | return func(args, kwargs) portal-channels-1 | ^^^^^^^^^^^^^^^^^^^^^ portal-channels-1 | File "/usr/local/lib/python3.12/site-packages/django/db/backends/base/base.py", line 316, in cursor portal-channels-1 | return self._cursor() portal-channels-1 | ^^^^^^^^^^^^^^ portal-channels-1 | File "/usr/local/lib/python3.12/site-packages/django/db/backends/base/base.py", line 292, in _cursor portal-channels-1 | self.ensure_connection() portal-channels-1 | File "/usr/local/lib/python3.12/site-packages/django/utils/asyncio.py", line 26, in inner portal-channels-1 | return func(*args, *kwargs) portal-channels-1 | ^^^^^^^^^^^^^^^^^^^^^ portal-channels-1 | File "/usr/local/lib/python3.12/site-packages/django/db/backends/base/base.py", line 275, in ensure_connection portal-channels-1 | self.connect() portal-channels-1 | File "/usr/local/lib/python3.12/site-packages/django/utils/asyncio.py", line 26, in inner portal-channels-1 | return func(args, **kwargs) portal-channels-1 | ^^^^^^^^^^^^^^^^^^^^^ portal-channels-1 | File "/usr/local/lib/python3.12/site-packages/django/db/backends/base/base.py", line 258, in connect portal-channels-1 | self.init_connection_state() portal-channels-1 | File "/usr/local/lib/python3.12/site-packages/django/db/backends/postgresql/base.py", line 309, in init_connection_state portal-channels-1 | super().init_connection_state() portal-channels-1 | File "/usr/local/lib/python3.12/site-packages/django/db/backends/base/base.py", line 225, in init_connection_state portal-channels-1 | self.check_database_version_supported() portal-channels-1 | File "/usr/local/lib/python3.12/site-packages/django/db/backends/base/base.py", line 196, in check_database_version_supported portal-channels-1 | and self.get_database_version() < self.features.minimum_database_version portal-channels-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ portal-channels-1 | File "/usr/local/lib/python3.12/site-packages/django/db/backends/postgresql/base.py", line 188, in get_database_version portal-channels-1 | return divmod(self.pg_version, 10000) portal-channels-1 | ^^^^^^^^^^^^^^^ portal-channels-1 | File "/usr/local/lib/python3.12/site-packages/django/utils/functional.py", line 47, in get portal-channels-1 | res = instance.dict[self.name] = self.func(instance) portal-channels-1 | ^^^^^^^^^^^^^^^^^^^ portal-channels-1 | File "/usr/local/lib/python3.12/site-packages/django/db/backends/postgresql/base.py", line 437, in pg_version portal-channels-1 | return self.connection.info.server_version portal-channels-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ portal-channels-1 | AttributeError: 'dict' object has no attribute 'server_version'

altairbow commented 3 months ago

Which version of django-db-connection-pool are you using?