我正在尝试在Django中测试多个数据库路由,但遇到一些错误。在我的settings.py
中,我有:
if TESTING:
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': 'test',
'USER': 'test',
'PASSWORD': 'testpassword',
...
},
'primary': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': 'test',
'USER': 'test',
'PASSWORD': 'testpassword',
....
}
}
以及需要在“主”数据库上进行更改的视图:
@transaction.atomic('primary')
def my_view(request):
... do stuff on primary db table
这与我在生产中的配置(我有一个将所有写请求路由到主数据库和一个副本以进行读取的数据库路由器)配合使用时很好,但是当我运行测试套件时,此视图失败,显示django.db.utils.ConnectionDoesNotExist: The connection primary doesn't exist
我如何在测试中让Django创建这个数据库?还是我需要在测试设置中做一些其他的别名/路由?谢谢!