psycopg2.errors.DuplicateTable:关系“app_appfile”已经存在

问题描述 投票:0回答:1

我使用 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

我可以在互联网上看到同样的问题,但其解决方案对我不起作用

postgresql sqlite unit-testing django-rest-framework django-testing
1个回答
0
投票

您之前的测试运行可能没有很好地清理,您应该尝试通过运行

python manage.py flush
来清除任何现有的测试数据库,并通过运行
rm test_db
手动删除测试数据库文件,最后,尝试使用
python manage.py test
再次运行测试.

© www.soinside.com 2019 - 2024. All rights reserved.