провал django oracle inspectdb - PullRequest
1 голос
/ 28 мая 2011

Я использую Django 1.3.у меня есть существующая база данных Oracle (10g), я хотел бы построить модель с использованием inspectdb.

'db': {
    'ENGINE': 'django.db.backends.oracle',
    'NAME': 'DBNAME',
    'USER': 'me',
    'PASSWORD': 'something',
}

, поэтому при запуске inspectdb я получаю:

$ python manage.py inspectdb --database db
cx_Oracle.InterfaceError: Unable to acquire Oracle environment handle

, поэтому я добавляю

$ export ORACLE_HOME=/usr/oracle/
$ TWO_TASK=DBNAME

я пытаюсь войти в систему с sqlplus с теми же учетными данными, и все выглядит хорошо.

так что ... я снова запускаю inspectdb, но на этот раз я получаю

# This is an auto-generated Django model module.
# You'll have to do the following manually to clean this up:
#     * Rearrange models' order
#     * Make sure each model has one field with primary_key=True
# Feel free to rename the models, but don't rename db_table values or field names.
#
# Also note: You'll have to insert the output of 'django-admin.py sqlcustom [appname]'
# into your database.

from django.db import models

(то есть пусто)

есть идеи?у меня не было проблем, чтобы заставить это работать на базе данных MySQL.

Ответы [ 2 ]

1 голос
/ 26 августа 2011

Из официальных документов .

inspectdb работает с PostgreSQL, MySQL и SQLite. Обнаружение внешнего ключа работает только в PostgreSQL и с некоторыми типами таблиц MySQL.

В настоящее время в трекере Django нет ошибки, если вы хотите отправить ее.

0 голосов
/ 28 июня 2012

В верхней части моего файла settings.py есть аналогичная настройка для установки переменных среды для моего драйвера оракула (Oracle 11.2). Не уверен, поможет ли это в вашем конкретном случае.

### SETTING  UP THE ENVIRONENT FOR OUR ORACLE RPM 
import os
os.putenv('ORACLE_HOME', '/.../oracle/11.2') 
os.putenv('LD_LIBRARY_PATH', '/.../oracle/11.2/lib')

У меня не было проблем с manage.py inspectdb (Django 1.2.7 и Django 1.4) в Oracle 11.2.

...