2015-11-04 42 views
1

我有两个数据库在我的设置我的项目的文件夹设置路线单一的模式来替代数据库在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数据库。

在线查看如何完成此操作。文章推荐使用'数据库路由',但我找不到适用于我或我理解的文档或示例。

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

回答

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/