在django中将模型设置为特定数据库

时间:2015-07-21 04:01:53

标签: python django django-models django-orm

我想问一下如何将模型设置为特定的数据库。 我还是django的新手并且在Django网站上了解了Database Routing,我有2个模型userModadminModuserMod应转到数据库 userDB adminMod应转到数据库 adminDB 但是当我迁移它时,两个表都存在于两个数据库中。 我已经在meta上包含了app_label,但它仍然没有用。 我正在使用django 1.8

编辑: 我只是在userDB上尝试了一段时间,最终将它与adminDB一起使用。 这是我的代码:

routers.py

class router(object):

def db_for_read(self, model, **hints):
    if model._meta.app_label == 'userDB':
        return 'userDB'
    return None

def db_for_write(self, model, **hints):
    if model._meta.app_label == 'userDB':
        return 'userDB'
    return None

def allow_relation(self, obj1, obj2, **hints):
    if obj1._meta.app_label == 'userDB' or\
        obj2._meta.app_label == 'userDB':
            return True
        return None

def allow_migrate(self, db, app_label, model=None, **hints):
    if app_label == 'userDB':
        return db == 'userDB'
    return None

2 个答案:

答案 0 :(得分:1)

试试这个:

class userMod(models.Model):
   name = models.CharField(max_length=120)

   class Meta:
      db_table='userDB'

答案 1 :(得分:0)

请记住在settings.py

中告诉django您的数据库路由器

https://docs.djangoproject.com/en/1.8/topics/db/multi-db/

搜索DATABASE_ROUTERS设置