Oracle
 sql >> база данни >  >> RDS >> Oracle

Проблем с Django inspectdb при използване на база данни на Oracle

Две неща:

  1. Inspectdb не поддържа официално Oracle (вижте Django Docs - inspectdb ) тъжни времена.
  2. Django няма много силна поддръжка за схеми на Oracle (вижте неразрешен билет 6148 на Django ) Така че може да имате повече късмет, ако успеете да се свържете, като използвате основния потребител за схемата, като направите схемата, която искате да интроспектирате, схемата по подразбиране.

Успях да получа изходен файл с основен модел, като промених избора в introspection.py. За мен промених функцията get_table_list в django/db/backends/oracle/introspection.py (около ред 40) от:

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

Но се отказах от django, когато прочетох общата лоша поддръжка за схеми в Oracle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL оператор за показване на число в думи, без да се използва директна функция (оракул)

  2. Oracle SQL:Използвайте последователност при вмъкване с Select Statement

  3. Добавете пореден индикатор към дата в Oracle

  4. Колоната се актуализира въз основа на предишен запис

  5. Как да преброя броя на колоните в таблица с помощта на SQL?