2015-11-04 24 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/