Django inspectdb ORA-00904 "IDENTITY_COLUMN"

В настоящее время я пытаюсь получить модели Django (версия 2.1.5) из существующей базы данных Oracle 11 с помощью python manage.py inspectdb, но эта ошибка все еще возникает:

Unable to inspect table table_name
The error was: ORA-00904: "IDENTITY_COLUMN": invalid identifier

Я пытался использовать разные Djangos. Пример. с 2.0 ошибка не возникала, но текст для моделей не создавался. Другие вопросы из этой темы здесь, на SO, не помогли.

Основываясь на этом ссылка на сайт, я думаю, что ошибка возникает из-за того, что у меня нет первичного ключа в таблице, но, поскольку я не уверен, я не хочу вносить какие-либо изменения в существующую базу данных.

Кто-нибудь решил эту проблему?

Вы можете сохранить файл дампа своей базы данных, а затем попробовать решение по ссылке, и если вы считаете, что что-то испортили, вы можете вернуть состояние своей базы данных из файла дампа.

Ahtisham 21.01.2019 17:38
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
1
1 045
1

Ответы 1

У меня была такая же проблема, и я решил сделать это:

# database configuration settings.py
#    'oracle': {
#        'ENGINE': 'django.db.backends.oracle',
#        'NAME': 'host:port/service',
#        'USER': 'database_user',
#        'PASSWORD': 'database_password',
#    }

    pip uninstall django
    pip install Django==1.11.22

    cd <django application>

    python manage.py inspectdb --database oracle <table name> > oraclemodel.py

    pip uninstall django
    pip install Django==2.2.4

Другие вопросы по теме