sql >> Databáze >  >> RDS >> Oracle

Problém Django inspectdb pomocí databáze Oracle

Dvě věci:

  1. Inspectdb oficiálně nepodporuje oracle (viz Dokumenty Django – inspectdb ) smutné časy.
  2. Django nemá příliš silnou podporu pro schémata Oracle (viz nevyřešený tiket Django 6148 ) Možná budete mít větší štěstí, pokud se budete moci připojit pomocí hlavního uživatele schématu, čímž se schéma, které si přejete prohlédnout, stane výchozím schématem.

Podařilo se mi získat základní výstup souboru modelu změnou výběru v introspection.py. Pro mě jsem změnil funkci get_table_list v django/db/backends/oracle/introspection.py (kolem řádku 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()]

Komu

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 vzdal jsem to django, když jsem si přečetl celkově špatnou podporu schémat v Oracle



  1. sql jdbc getgeneratedkeys vrátí id sloupce nenalezeno, typ sloupce neznámý

  2. Mohu mít primární klíč bez seskupeného indexu? Mohu mít také vícehodnotový seskupený index?

  3. 'DbContextOptionsBuilder' neobsahuje definici pro 'UseSqlServer'

  4. Jak zajistit, aby MySQL považovalo podtržítko za oddělovač slov pro fulltextové vyhledávání?