Django-ORM Üzerinden Farklı Bir Şemaya erişim

Arkadaşlar merhaba,

Oracle veri tabanı üzerinde kendi kullanıcıma ait bir şemam var. Bunu python manage.py inspectdb ile modele alip üzerinde sorgu yürütebiliyorum. Aynı veri tabanı üzerindeki başka bir kullanıcı şemasını da bu yolla çekmek istiyorum. Bunu, inspectdb ile olmasa dahi modellemeyi elle yaparak ORM üzerinden veri çekilebilme yolu var mıdır? Yardımlarınız için şimdiden teşekkür ederim.

Uzuuun araştırma ve denemeler sonucu bir çözüm buldum.

inspectdb ile diğer veri tabanı şemasından tabloları otomatik olarak Oracle tarafında modelleme imkânsız gibi görünüyor. Bu durumu aşmak için Diğer kullanıcı şemalarının birer kopyasını kendi şemamda oluşturdum. daha sonra bunları inspectdb ile modele aktardım.

İşin keyifli kısmı bundan sonra başlıyor: Normande başka bir şemaya erişim için ‘ŞEMA_ADI’.‘TABLO’ şeklinde erişmemiz gerekiyor ki bunun yapılabilirliği hakkında yukarıda da bahsettiğim bir çözüm bulamadım. Bu sebeple ŞEMA_ADI kısmından kurtulmam gerekiyordu. Kendi tarafımda tabloların aynılarını aynı isimlerle oluşturup modele aktardıktan sonra tabloları sildim. Sonrasında DBA abimizden synonym oluşturma yetkisi aldım.

CREATE SYNONYM TABLO FOR BASKA_SEMA.TABLO

ile tabloların isimlerine sinonim oluşturdum. Aslında bir nevi aradan şemayı (BASKA_TABLO. kısmını) çıkarmış oldum. Zaten

SELECT * FROM TABLO

dediğimde kendi tablomda arama yapıyormuş gibi davrandığı için Cx_Oracle tarafında da hata almadım.

Belki aynı durumu yaşayan ya da yaşayacak olursa az da olsa bilgi vermiş olur.

3 Beğeni