我假設你想Django管理只准備了OCS數據庫。
首先你需要在數據庫中的設置定義外部數據庫:
DATABASES = {
'default': {
... django db settings here ...
},
'ocs_db': {
'ENGINE': 'django.db.backends.mysql',
'OPTIONS': {
'read_default_file': '/path/to/my.cnf',
},
}
}
你可以給python manage.py inspectdb --database ocs_db
一試; inspectdb查找數據庫上的表並將模型定義轉儲爲python模塊。 如果這不起作用,那麼你必須手動完成。
那麼你一定要Django的不是管理該表(所以沒有行會被刪除,並且對錶中沒有操作會做),你可以做到這一點通過元管理選項。
我建議你寫一個基類使用此選項(最終其他的定製你需要的所有OCS型號)。
class OCSBaseModel(models.Model):
def save(self):
"""
avoid inserts/edits from model
"""
return
class Meta():
abstract = True
managed = False
class Workstation(OCSBaseModel):
...
作爲最後一步,您需要指示Django爲OCS模型使用正確的數據庫。
爲此,您需要編寫一個數據庫路由器作爲記錄here
或實現OCS車型的Django模型管理器,每個查詢集到數據庫中標記。 例如。
class OCSModelManager(models.Manager):
def get_query_set(self):
return super(OCSModelManager, self).get_query_set().using('ocs_db')
請注意,我沒有測試此代碼的任何;)
有什麼問題嗎?你需要更具體地瞭解你的問題?您是問如何使用多個數據庫,或者如何手動將行插入到單獨的數據庫中? –