2016-10-20 53 views
1

Django是否可以與現有的數據庫一起使用,在我的情況下,Microsoft SQL是非常龐大而複雜的,並且不能以任何方式由Django進行更改?在現有的複雜數據庫中使用Django

我已經閱讀this,但它似乎並沒有解決我的問題;它說manage.py migrate會將一些表添加到數據庫中,這一定不會發生。

我也發現了這一點,這可能無法正常工作,因爲它仍然需要使用在每個數據庫遷移: https://docs.djangoproject.com/en/1.10/topics/db/multi-db/

我的用戶故事:

  • 我想要查看的客戶數據從我的瀏覽器現有的數據庫(SQL選擇)
  • 我想寫一個訪問報告(SQL插入)

乙除此之外,數據庫不得改變。

Django可能嗎? Django甚至是正確的工具嗎? 是否有可能有一個Django特定的數據庫和一個不同的數據庫,它只會選擇/插入?

回答

2

你可以使用另一個數據庫django來保留其元數據。數據庫路由器幫助你在告訴Django中保存的數據在數據庫[docs]

一個例子:

Settings.py

DATABASE_ROUTERS = ['path.to.YourRouter'] 

router.py

class YourRouter(object): 
    def db_for_read(self, model, **hints): 
     if model.__class__.__name__ in ['A', 'B']: 
      return 'secondDB' 
     return 'default' 

    def db_for_write(self, model, **hints): 
     if model.__class__.__name__ in ['A', 'B']: 
      return 'secondDB' 
     return 'default'   
    def allow_relation(self, obj1, obj2, **hints): 
     return True 

在您的訪問報告表中寫入inspectdb管理命令可以通過基於現有數據庫自動生成模型來顯着地幫助您。 [docs]

+0

太棒了,謝謝你=) – Harper

0

Django將添加一些表來跟蹤管理用戶權限,會話,內容類型和模型遷移等各種內容。

如果你真的不想對數據庫進行任何修改,那麼比Django不適合你。

+0

好的,謝謝。數據庫不得更改,因爲它是由不同公司/軟件維護的軟件的一部分,我只想在瀏覽器中查看數據並進行特定插入。 – Harper

+2

您可以使用Django與多個數據庫。你可以讓Django將其設置爲一個並連接到另一個,並限制它的寫權限。 – IanAuld