Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Masalah Django inspectdb menggunakan database Oracle

Dua hal:

  1. Inspectdb tidak secara resmi mendukung Oracle (lihat Django Documents - inspectdb ) saat-saat sedih.
  2. Django tidak memiliki dukungan yang sangat kuat untuk skema Oracle ( lihat tiket Django yang belum terselesaikan 6148 ) Jadi Anda mungkin lebih beruntung jika Anda dapat terhubung menggunakan pengguna utama untuk skema, membuat skema yang ingin Anda introspeksi menjadi skema default.

Saya bisa mendapatkan output file model dasar dengan mengubah pilih di introspection.py. Bagi saya, saya mengubah fungsi get_table_list di Django/db/backends/Oracle/introspection.py (sekitar baris 40) dari:

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

Untuk

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

Tetapi menyerah pada Django ketika saya membaca keseluruhan dukungan yang buruk untuk skema di 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. Apa itu Urutan di oracle

  2. Kueri dua kota di STATION dengan nama CITY terpendek dan terpanjang,

  3. Kunci utama dan asing tabel bersarang di Oracle

  4. Mengambil ROWID Terakhir Disisipkan Di PHP/OCI

  5. Pengembang SQL memasukkan kesalahan data