将单个模型路由到django中的备用数据库



我在项目的设置文件夹中设置了两个数据库

'default': {
    'ENGINE': 'django.db.backends.sqlite3',
    'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
},
'foo': {
    'NAME': 'bar',
    'ENGINE': 'django.db.backends.mysql',
    'HOST': 'some.site.com',
    'USER': 'xxxxxx',
    'PASSWORD': 'xxxxxxxx'
}

我也建立了模型,其中一个是用创建的

python manage.py inspectdb --database foo > tmp.py

这创建了一些我在foo中已经有的模型,所以我把它复制到了我的模型文件夹中。然而,django正试图使用该模型的现有默认数据库,而我希望它路由到foo数据库。

在网上查找如何完成此操作时。帖子建议使用"数据库路由",但我找不到适合我或我理解的文档或示例。

那么,请注意,设置单个模型以使用外部数据库的正确方法是什么?

最简单的方法是手动选择数据库。从…起https://docs.djangoproject.com/en/1.8/topics/db/multi-db/#manually-选择a数据库

>>> # This will run on the 'default' database.
>>> Author.objects.all()
>>> # So will this.
>>> Author.objects.using('default').all()
>>> # This will run on the 'other' database.
>>> Author.objects.using('other').all()
>>> my_object.save(using='legacy_users')

文档还有其他选项,请检查:https://docs.djangoproject.com/en/1.8/topics/db/multi-db/

最新更新