我使用 postgres 作为我的项目的数据库。我想使用 sqlite DB 在我的
test.py
文件中进行并运行一些测试。我更改我的 settings.py
文件以使用 sqlite3 db 执行此操作,但是当我尝试通过 python manage.py test
运行我的简单测试时,我收到此消息:
正在为别名“default”创建测试数据库... 创建测试数据库时出错:数据库“test_db”已存在
如果您想尝试删除测试数据库“test_db”,请输入“yes”,或者输入“no”取消:yes 正在销毁别名“default”的旧测试数据库...
说“是”之后我明白了
django.db.utils.ProgrammingError:关系“app_appfile”已经存在
我的应用程序/test.py
from rest_framework.test import APITestCase
from rest_framework.test import APIClient
from . models import Level
class SearchTest(APITestCase):
def test_find_out(self):
self.assertEqual(2, 2)
我的设置.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': NAME,
'USER': USER,
'PASSWORD': PASSWORD,
'PORT': PORT,
'TEST': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'test_db',
}
}
}
SOUTH_TESTS_MIGRATE = False
我可以在互联网上看到同样的问题,但其解决方案对我不起作用
您之前的测试运行可能没有很好地清理,您应该尝试通过运行
python manage.py flush
来清除任何现有的测试数据库,并通过运行 rm test_db
手动删除测试数据库文件,最后,尝试使用 python manage.py test
再次运行测试.