将模型设置为django中的特定数据库
我想问如何将模型设置为特定数据库。 我还是Django的新手,在Django网站上阅读Database Routing,我有2个模型,userMod
和adminMod
。 userMod
应该去数据库userDB。 adminMod
应该去数据库adminDB。
但是当我迁移它时,两个表都存在于两个数据库中。 我已经在meta上包含了app_label
,但它仍然不起作用。 我使用Django 1.8将模型设置为django中的特定数据库
编辑: 我只是想它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
试试这个:
class userMod(models.Model):
name = models.CharField(max_length=120)
class Meta:
db_table='userDB'
嗨@Geo Jacob。谢谢你的建议,但不幸的是,这并没有奏效。这两个表仍然存在'userDB' – predator
我没有试过这个,但这可能对你有所帮助。 http://stackoverflow.com/questions/18547468/multiple-databases-and-multiple-models-in-django –
记得告诉在settings.py
https://docs.djangoproject.com/en/1.8/topics/db/multi-db/
Django的有关数据库的路由器搜索DATABASE_ROUTERS设置
谢谢你的回应,但我已经阅读了链接。 – predator
嗨,请插入您的代码更清晰。阅读此内容以改善您的问题,以便我们能够更好地帮助您。 http://stackoverflow.com/help/mcve –
你可以粘贴你的数据库路由器的代码? – kmmbvnr