【发布时间】:2019-07-09 14:25:42
【问题描述】:
我正在使用两个数据库,一个从另一个数据库读取数据,然后将数据写入另一个数据库。下面是我的路由器类和我对设置的更改,但对这个概念非常陌生,在这方面有更多经验的人可以确认它应该可以工作或帮助进行编辑吗?
应用程序名为“myapp”,我命名为“readonly_db”的只读数据库,而我要写入的数据库是“默认”数据库。
class MyappRouter:
def db_for_read(self, model, **hints):
if model._meta.app_label == 'myapp':
return 'readonly_db'
return None
def db_for_write(self, model, **hints):
if model._meta.app_label == 'myapp'
return 'default'
return None
def allow_relation(self, obj1, obj2, **hints):
if obj1._meta.app_label == obj2._meta.app_label:
return True
else:
return False
return None
def allow_migrate(self, db, **hints):
if db == 'default':
return True
elif db == 'readonly_db':
return False
return None
DATABASE_ROUTERS = ['<path to>.myapprouter.py']
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'myapp' ,
'USER': 'USER',
'PASSWORD': 'PASSWORD',
'HOST': 'LOCALHOST',
'PORT': '5432'
}
'readonly_db': {
'ENGINE': 'django_postgres_readonly'
'NAME': 'READONLY'
'USER': 'USER'
'PASSWORD': 'PASSWORD'
'HOST': 'LOCALHOST'
'PORT': '5432'
}
【问题讨论】:
标签: python django database multiple-databases