1

私はdjango1.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データベースで動作させるのに問題はありませんでした。

4

2 に答える 2

1

公式ドキュメントから。

inspectdb は、PostgreSQL、MySQL、および SQLite で動作します。外部キー検出は、PostgreSQL および特定のタイプの MySQL テーブルでのみ機能します。

送信したい場合は、現在、Django トラッカーにリストされているバグはありません。

于 2011-08-26T14:56:22.160 に答える
0

settings.py の上部に同様の設定をして、Oracle ドライバー (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 inspectdbOracle 11.2で(Django 1.2.7およびDjango 1.4)に 問題はありませんでした。

于 2012-06-28T14:18:30.243 に答える