2013-05-01 57 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