31 lines
1.0 KiB
Python
31 lines
1.0 KiB
Python
class DatabaseRouter:
|
|
def db_for_read(self, model, **hints):
|
|
# 返回用于读取的数据库别名
|
|
db_route = getattr(model._meta, 'db_route', None)
|
|
if db_route is not None:
|
|
return db_route
|
|
db_table = model._meta.db_table
|
|
suffix = db_table.split('_')[0]
|
|
if suffix:
|
|
return suffix
|
|
return 'default'
|
|
|
|
def db_for_write(self, model, **hints):
|
|
db_route = getattr(model._meta, 'db_route', None)
|
|
if db_route is not None:
|
|
return db_route
|
|
# 返回用于写入的数据库别名
|
|
db_table = model._meta.db_table
|
|
suffix = db_table.split('_')[0]
|
|
if suffix:
|
|
return suffix
|
|
return 'default'
|
|
|
|
def allow_relation(self, obj1, obj2, **hints):
|
|
# 确定两个对象之间是否允许建立关联关系
|
|
return True
|
|
|
|
def allow_migrate(self, db, app_label, model_name=None, **hints):
|
|
# 确定给定应用程序的模型是否允许在给定数据库上进行迁移
|
|
return True
|