2011-05-28 49 views
1

我使用的Django 1.3。我有一個現有的Oracle數據庫(10G)我想使用inspectdb建立模型的。Django的甲骨文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數據庫。

+0

別人問這對SO而回。恐怕他們也沒有得到答案:http://stackoverflow.com/questions/4914775/django-inspectdb-issue-using-oracle-db我希望你有更好的運氣。 – APC 2011-05-28 06:47:41

+0

您可以通過對introspect.py文件進行一些更改來獲得某些內容,但我不知道它會有多完整/準確。請參閱回答在以前鏈接的問題給出:http://stackoverflow.com/a/9368226/1212519 – Plecebo 2012-02-20 20:55:44

回答

1

從官方docs

inspectdb工作在PostgreSQL,MySQL和SQLite的。外鍵檢測僅適用於PostgreSQL和某些類型的MySQL表。

如果您想提交它,Django跟蹤器中目前沒有列出它的錯誤。

0

我有我的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') 

我已經在Oracle 11.2沒有遇到任何問題與manage.py inspectdb(Django的1.2.7和1.4的Django)。