多个数据库:如何使外部django应用程序使用不同的数据库

时间:2012-02-09 13:13:13

标签: database django

我正在努力找出实现这一目标的最佳方法。像往常一样,the django documentation上有一些很好的指针,但我仍然不确定最好的方法是什么。

django应用程序使用基本上非托管的数据库(它相当复杂,使用视图,触发器等,因此例如,syncdb不起作用)。但是没关系,因为DBA在这里创建自己的数据库迁移,并管理数据库而不管django。

但是,我想使用一些外部的第三方应用程序,而那些时候会有一些自己的数据库表。我非常希望能够syncdb那些并独立管理这些人。由于app-table通常独立于core-app表,因此我目前正在使用的想法是为第三方应用程序使用单独的'other'数据库。

通过阅读指南,创建自定义路由器并根据应用名称将其路由到此'other'数据库似乎是有意义的。但是,如果应用程序还需要与现有模型进行交互,会发生什么?是否可以/合理地创建一个路由器,它将所有特定于应用程序的有效地路由到'other'数据库以及'default'数据库中的任何其他内容?有没有通用的方法来实现这一点,而无需在路由器的某个地方对所有第三方表进行硬编码?

1 个答案:

答案 0 :(得分:1)

这是一个愚蠢的问题。必须是一些咖啡因缺乏或对雪的不良反应。我根本没有意识到数据库路由器功能将模型作为参数获取,并且可以轻松地做出每个模型(而不是每个应用程序)的决策。