दो बातें:
- Inspectdb आधिकारिक तौर पर oracle का समर्थन नहीं करता (देखें Django डॉक्स - निरीक्षणडीबी ) दुखद समय।
- Django के पास Oracle स्कीमा के लिए बहुत मजबूत समर्थन नहीं है (देखें अनसुलझा Django टिकट 6148 ) तो आपके पास बेहतर भाग्य हो सकता है यदि आप स्कीमा के लिए मुख्य उपयोगकर्ता का उपयोग करके कनेक्ट करने में सक्षम हैं, जिससे आप डिफ़ॉल्ट स्कीमा का आत्मनिरीक्षण करना चाहते हैं।
मैं introspection.py में चयन को बदलकर एक मूल मॉडल फ़ाइल आउटपुट प्राप्त करने में सक्षम था। मेरे लिए मैंने django/db/backends/oracle/introspection.py (लगभग पंक्ति 40) में get_table_list फ़ंक्शन को बदल दिया:
def get_table_list(self, cursor):
"Returns a list of table names in the current database."
cursor.execute("SELECT TABLE_NAME FROM USER_TABLES")
return [row[0].lower() for row in cursor.fetchall()]
करने के लिए
def get_table_list(self, cursor):
"Returns a list of table names in the current database."
cursor.execute("SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNER = 'SCHEMA_TO_QUERY'")
return [row[0].lower() for row in cursor.fetchall()]
लेकिन जब मैंने Oracle में स्कीमा के लिए समग्र खराब समर्थन पढ़ा तो django को छोड़ दिया