wil*_*eam 3 database django django-rest-framework
根据 django 文档,可以从数据库创建副本并定义它将写入或读取的位置。(django 多数据库)。
然后,它为其编写了代码,配置我的DATABASE喜欢:
DATABASES = {
'default': {
'NAME': 'my_write_database',
'ENGINE': 'django.db.backends.mysql',
'USER': 'mysql_user',
'PASSWORD': 'writedatabase',
},
'replica': {
'NAME': 'replica',
'ENGINE': 'django.db.backends.mysql',
'USER': 'mysql_user',
'PASSWORD': 'readdatabase',
},
}
Run Code Online (Sandbox Code Playgroud)
并创建路由器:
class ReplicaDatabaseWriteRead(object):
route_app_labels = {..all_possible_applications}
def db_for_read(self, model, **hints):
return 'replica' # O just wanna read from 'replica'
def db_for_write(self, model, **hints):
if model._meta.app_label in self.route_app_labels:
return 'default' # I wanna write in default and 'reflect' to 'replica'
return None
def allow_relation(self, obj1, obj2, **hints):
db_list = (..all_possible_apps)
if obj1._state.db in db_list and obj2._state.db in db_list:
return True
return None
def allow_migrate(self, db, app_label, model_name=None, **hints):
return True
Run Code Online (Sandbox Code Playgroud)
但这不能正常工作。当我写入时,它只是写入default,并没有反映到replica。然后,当我读取 时replica,值不存在。
他不应该写在 中default并复制 中的值吗replica?我正在使用 django-rest-framework 这段代码与文档非常相似,我不知道出了什么问题。或者我不明白django文档?
| 归档时间: |
|
| 查看次数: |
2034 次 |
| 最近记录: |