我在项目的设置文件夹中设置了两个数据库
'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/