Dwie rzeczy:
- Inspectdb oficjalnie nie obsługuje Oracle (patrz Dokumentacja Django — inspekcja db ) smutne czasy.
- Django nie ma bardzo silnego wsparcia dla schematów Oracle (patrz nierozwiązany bilet 6148 Django ) Więc możesz mieć więcej szczęścia, jeśli jesteś w stanie połączyć się za pomocą głównego użytkownika schematu, dzięki czemu schemat, który chcesz introspekcji, będzie schematem domyślnym.
Udało mi się uzyskać podstawowy plik wyjściowy modelu, zmieniając zaznaczenie w introspection.py. U mnie zmieniłem funkcję get_table_list w django/db/backends/oracle/introspection.py (około linii 40) z:
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()]
Do
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()]
Ale zrezygnowałem z django, gdy przeczytałem ogólnie słabe wsparcie dla schematów w Oracle