【发布时间】:2013-11-23 04:52:15
【问题描述】:
我有一个包含两个数据库的 Django (1.6) 项目。我有一个带有一个模型和多个表的应用程序。
我想使用数据库路由器将模型中的特定表设置为特定数据库。我找到的所有文档似乎都解释了如何将特定应用程序路由到特定数据库。
【问题讨论】:
标签: django django-models django-database
我有一个包含两个数据库的 Django (1.6) 项目。我有一个带有一个模型和多个表的应用程序。
我想使用数据库路由器将模型中的特定表设置为特定数据库。我找到的所有文档似乎都解释了如何将特定应用程序路由到特定数据库。
【问题讨论】:
标签: django django-models django-database
看起来您可以为此使用自定义路由器和模型属性。
YMMV:还没有测试过。
https://docs.djangoproject.com/en/dev/topics/db/multi-db/#using-routers
class MyModel(models.Model):
_DATABASE = "foo"
class CustomRouter(object):
def db_for_read(self, model, **hints):
database = getattr(model, "_DATABASE", None)
return database
# repeat for db_for_write, etc.
【讨论】:
_DATABASE 的值仅引用在DATABASES 设置条目中声明的数据库名称。你可以从model._meta.db_table找出表名。