Twee dingen:
- Inspectdb ondersteunt oracle officieel niet (zie Django Docs - inspectdb ) trieste tijden.
- Django biedt geen erg sterke ondersteuning voor Oracle-schema's (zie onopgelost Django-ticket 6148 ) U heeft dus meer geluk als u verbinding kunt maken met de hoofdgebruiker voor het schema, waardoor het schema dat u wilt introspecteren het standaardschema is.
Ik kon een basismodelbestandsuitvoer krijgen door de select in introspection.py te wijzigen. Voor mij heb ik de functie get_table_list in django/db/backends/oracle/introspection.py (rond regel 40) gewijzigd van:
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()]
Naar
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()]
Maar gaf django op toen ik de algehele slechte ondersteuning voor schema's in Oracle las