Django, использование oracledb сообщение об ошибке, что мне нужен Oracle 19

Я в замешательстве, поскольку в документации к oracledb ясно сказано, что все после 12.1 должно работать нормально. Не мог бы кто-нибудь объяснить мне, где я ошибся? Ошибка возникла, когда я попытался создать миграции. Документ, на который я ссылаюсь, следующий: oracledb docs

Вот ошибка:

django.db.utils.NotSupportedError: Oracle 19 or later is required (found 12.2.0.1.0).

А вот моя строка баз данных в моем settings.py:

from pathlib import Path
import sys
import oracledb
oracledb.version = "8.3.0"
sys.modules["cx_Oracle"] = oracledb
#the above line was added because of error (django.core.exceptions.ImproperlyConfigured: Error 
#loading cx_Oracle module: No module named 'cx_Oracle')

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.oracle',
        'NAME': (
                    '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=server123)(PORT=1521))'
                    '(CONNECT_DATA=(SERVICE_NAME=server.domain.com)))'
                ),
        'USER': 'user123',
        'PASSWORD': 'password',
        'OPTIONS': {
            'threaded': True,
            
        },
    }
}

Это особенность Django. Из docs.djangoproject.com/en/4.1/ref/databases/#oracle-notes:

"Django поддерживает Oracle Database Server версии 19c и выше."

Также смотрите Django 4.0 release notes

"Прекращена поддержка Oracle 12.2 и 18c". Попробуйте более старую версию Django, если вы не можете обновить БД.

Попробуйте более старую версию Django, если вы не можете обновить БД

Если обновление БД невозможно, можно попробовать изменить значение минимальной версии базы данных (minimum_database_version). В файле mysite/mydbengine/base.py

from django.db.backends.oracle import base, features


class DatabaseFeatures(features.DatabaseFeatures):
    minimum_database_version = (12,)

class DatabaseWrapper(base.DatabaseWrapper):
    features_class = DatabaseFeatures

В settings.py

DATABASES = {
'default': {
    'ENGINE': 'mydbengine',
    ...
}

Также смотрите https://docs.djangoproject.com/en/4.2/ref/databases/#subclassing-the-built-in-database-backends

Вернуться на верх