我假设你想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')
请注意,我没有测试此代码的任何;)
有什么问题吗?你需要更具体地了解你的问题?您是问如何使用多个数据库,或者如何手动将行插入到单独的数据库中? –