代码之家  ›  专栏  ›  技术社区  ›  ha22109

django mulitidb公司

  •  2
  • ha22109  · 技术社区  · 16 年前

    您好,我使用的是django 1.2。我的情况下,我有几个模型,这是目前在一个数据库和第二个数据库的其他人。我已经改变了我的settings.py文件与两个数据库的细节

    我怎么知道对于这个模型是指‘a’数据库,对于其他模型是指‘b’数据库。

    #models.py
    
    ### this class is in a database #####
    
    
    class Test(models.Model):
       id=models.AutoField(primary_key=True)
       ...
       ...
       ...
       ...
       class Meta:
          app_label=ugettext('Test')
          db_table='testing'
          verbose_name=ugettext_lazy('Testing 1,2')
       def __unicode__(self):
           return self.name
    
    
     ### this class is in b database #####
    
    
     class Test2(modes.Model):
        id=models.AutoField(primary_key=True)
        name=models.CharField(max_length=200)
        ...
        ....
        ....
        class Meta:
          app_label=ugettext('Test')
          db_table='testing2'
          verbose_name=ugettext_lazy('1,2')
        def __unicode__(self):
           return self.name
    
      # settings.py
       DATABASES= {  'default': {
              'NAME': 'a',
              'ENGINE': 'django.db.backends.postgresql_psycopg2',
              'USER': 'asdf',
              'PASSWORD': '123'
    
             },
            'users': {
              'NAME': 'b',
          'ENGINE': 'django.db.backends.postgresql_psycopg2',
          'USER': 'asdf',
          'PASSWORD': '123'
    
      }
     }
    
    1 回复  |  直到 16 年前
        1
  •  2
  •   miku    16 年前

    django文档有一个专门的页面,用于多数据库相关的内容:

    例如,详细的方法是指定要使用的数据库,当进行查询时,请参见:

    对于一般方法,您应该指定一些 DATABASE_ROUTERS