我在项目的设置文件夹中设置了两个数据库
'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数据库。
在线查看如何完成此操作。帖子建议使用'数据库路由',但我找不到文档或适用于我或我理解的示例。
那么请问,设置单个模型以使用外部数据库的正确方法是什么?
答案 0 :(得分:1)
最简单的方法是手动选择数据库。 来自https://docs.djangoproject.com/en/1.8/topics/db/multi-db/#manually-selecting-a-database
>>> # 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/