Поддерживает ли Django 1.9.5 PostgreSQL 11?
Конец жизни Postgres 10 на Heroku все ближе и ближе, но у меня все еще есть унаследованный проект на Django 1.9, использующий его там. Можно ли без проблем перейти на Postgres 11?
Согласно документации:
Django поддерживает PostgreSQL 9.0 и выше. Это требует использования psycopg2 2.4.5 или выше (или 2.5+, если вы хотите использовать django.contrib.postgres).
.https://docs.djangoproject.com/en/1.8/ref/databases/#postgresql-notes
.
Текущая реализация psycopg2 поддерживает:
- Python версий от 3.6 до 3.10
- PostgreSQL версии сервера от 7.4 до 14
- Версия клиентской библиотеки PostgreSQL от 9.1
Самые ранние упоминания Postgres 11 в psycopg2 появляются около 2.7.x, а в 2.8 явно упоминается:
Отменена поддержка Python 2.6, 3.2, 3.3.
.Пакет Wheel скомпилирован с OpenSSL 1.0.2r и PostgreSQL 11.2 libpq.
https://www.psycopg.org/docs/news.html#what-s-new-in-psycopg-2-8
.
Итак, проблема будет где-то в районе psycopg, если вообще будет. Если вы можете запустить свой проект Django на Python 3.4+ с psycopg 2.8+, то не должно быть причин, почему он не работает. Более старые версии psycopg2 могут прекрасно работать и с Postgres 11+. Вам следует просто проверить это на локальном окружении (например, в Docker).