sql >> Databasteknik >  >> RDS >> Oracle

Django inspectdb-problem med Oracle-databas

Två saker:

  1. Inspectdb stöder inte officiellt oracle (se Django Docs - inspectdb ) sorgliga tider.
  2. Django har inte särskilt starkt stöd för Oracle-scheman (se olöst Django-biljett 6148 ) Så du kanske har bättre tur om du kan ansluta med huvudanvändaren för schemat, vilket gör det schema du vill introspektera till standardschemat.

Jag kunde få en grundläggande modellfil utdata genom att ändra en select i introspection.py. För mig ändrade jag funktionen get_table_list i django/db/backends/oracle/introspection.py (runt rad 40) från:

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()]

Till

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()]

Men gav upp django när jag läste det överlag dåliga stödet för scheman i Oracle



  1. importera XML-data i Oracle DB

  2. Koherens:Fel:Kunde inte hitta eller ladda huvudklassen com.tangosol.net.DefaultCacheServer

  3. Matcha en grupp som kanske inte finns

  4. Ändra mysql tidszon från phpMyAdmin