2013-05-01 97 views
2

所以我有點新的整個Django的數據庫,也許我只是不完全瞭解Django的路由器就講到這兒: https://docs.djangoproject.com/en/dev/topics/db/multi-db/#database-routers 但對我的生活我無法弄清楚如何鏈接兩個數據庫一起。也許這是因爲我的設置不同?這兩個數據庫是獨立的Django項目文件夾,都有獨立的Postgre數據庫。我認爲,也許問題來自於他們在不同的文件夾中,我沒有正確包含路徑名?Django的 - 多個數據庫

這是我現在有:

settings.py:

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.postgresql_psycopg2', 
     'NAME': 'ClothesWashers', 
     'USER': '', 
     'PASSWORD': '', 
     'HOST': '', 
     'PORT': '', 
     }, 
    'RECS': { 
     'ENGINE': 'django.db.backends.postgresql_psycopg2', 
     'NAME': 'RECS', 
     'USER': '', 
     'PASSWORD': '', 
     'HOST': '', 
     'PORT': '', 
     } 
} 

INSTALLED_APPS = (
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'django.contrib.admin', 
    'django_extensions', 
    'ClothesWasher_Purchaser', 
    ) 

DATABASE_ROUTERS = ['ClothesWashers.db_routers.RECS_Router',] 

db_routers.py:

class RECS_Router(object): 
    def db_for_read(self, model, **hints): 
     if model._meta.app_label == 'RECS_Data': 
      return 'RECS' 
     return 'default' 

所有我希望能夠做的是做這樣的事情請致電RECS數據庫RECS_Data的應用程序,這樣我可以從中讀取:

import os 
os.environ['DJANGO_SETTINGS_MODULE'] = 'ClothesWashers.settings' 
from RECS_Data.models import RecsData 
g = RecsData._meta.fields 

謝謝任何​​願意幫助我的人!

+0

什麼叫「兩個數據庫是獨立的Django項目的文件夾,並都具有獨立的Postgre數據庫」 – dm03514 2013-05-01 23:54:22

+0

的意思是我有一個叫RECS Django的項目,它有一個相關的Postgres數據庫(稱爲RECS)與一個名爲RECS_Data的應用程序。我現在試圖製作一個名爲ClothesWashers的完全獨立的Django項目,它也有自己的postgres數據庫。基本上,我想要做的就是從RECS數據庫中讀取數據並將數據放入ClothesWashers數據庫。這兩個項目文件夾都位於名爲「Django Projects」的文件夾中。 – 2013-05-02 00:11:06

回答

1

我想你可以閱讀使用輔助數據庫。

試試這個。

i.e RecsData.using("RECS")._meta.fields 

欲瞭解更多請參考這裏https://docs.djangoproject.com/en/dev/topics/db/multi-db/#manually-selecting-a-database

+0

本次問與答的榮譽。關於使用「多個數據庫」的主要Django文檔實際上是關於使用「多個RDBMS實例」。換句話說,通過故障轉移或冗餘數據源以某種順序輪詢可靠性或負載平衡。那麼需要從字面上查詢兩個數據庫的單個項目呢? Django應用程序模型以一個項目,一個數據庫爲中心,具有許多應用程序和許多表。如果你是從頭開始一個Django應用程序,當然。但是如果你需要一個GUI來幫助加入/集成現有的數據庫,這個「using()」特性非常重要。謝謝! – IcarusNM 2015-05-14 13:38:18