我一直在使用手动数据库选择来处理一个有两个单独的数据库的项目.我在设置中定义了我的数据库.经过一些进一步的阅读后,似乎数据库路由实际上就是这样.但是,在阅读了这里的文档和一些相关帖子后,我比以往更加困惑.
在我的设置中,我有:
DATABASES = {
'default': {
....
},
'my_db2': {
....
}
}
DATABASE_ROUTERS = ['myapp2.models.MyDB2Router',]
Run Code Online (Sandbox Code Playgroud)
我知道我必须像我这样定义我的路由器类(我认为在myapp2.models.py中):
class MyDB2Router(object):
"""A router to control all database operations on models in
the myapp2 application"""
def db_for_read(self, model, **hints):
if model._meta.app_label == 'myapp2':
return 'my_db2'
return None
def db_for_write(self, model, **hints):
if model._meta.app_label == 'myapp2':
return 'my_db2'
return None
def allow_relation(self, obj1, obj2, **hints):
if obj1._meta.app_label == 'myapp2' or obj2._meta.app_label == 'myapp2':
return True
return None
def allow_syncdb(self, …Run Code Online (Sandbox Code Playgroud)