from 项目名称.settings import DATABASE_APPS_MAPPING
class DBRouter(object):
def db_for_read(self, model, **hints):
if model._meta.app_label in DATABASE_APPS_MAPPING:
return DATABASE_APPS_MAPPING[model._meta.app_label]
return 'default'
def db_for_write(self, model, **hints):
if model._meta.app_label in DATABASE_APPS_MAPPING:
return DATABASE_APPS_MAPPING[model._meta.app_label]
return 'default'
def allow_relation(self, obj1, obj2, **hints):
return True
def allow_migrate(self, db, app_label, model_name=None, **hints):
if app_label in DATABASE_APPS_MAPPING:
model_db = DATABASE_APPS_MAPPING[app_label]
else:
model_db = 'default'
if db == model_db:
return True
else:
return False
work.models
class Node(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=50)
class Meta:
db_table = 'node'
app_label = 'work' #指定数据库
user.models
class User(BaseModel):
id = models.AutoField(primary_key=True)
user_name = models.CharField(max_length=50)
password = models.CharField(max_length=255)
class Meta:
db_table = 'user'