The*_*Mir 4 python database django postgresql
我在测试时遇到问题。这是我第一次编写测试,但我遇到了问题。
我刚刚在应用程序内部创建了一个测试文件夹users,test_urls.py用于测试url。
当我输入:
python manage.py test users
它说:
为别名“默认”创建测试数据库...创建测试数据库时出错:数据库“ database_name”已存在
如果要尝试删除测试数据库“ database_name”,请输入“ yes”,否则请输入“ no”以取消:
这是什么意思?如果输入是会怎样?我会丢失数据库中的所有数据吗?
在测试时,Django将创建一个要使用的测试数据库,以便您的开发数据库不会受到污染。错误消息表明Django正在尝试创建名为的测试数据库"database_name",并且该数据库已存在。您应该检查所用数据库软件的表,并检查其中的内容database_name,它可能是错误创建的。
如果键入yes,数据库database_name将被删除,并且不太可能恢复数据。因此,请先了解发生了什么。
您应该在中设置测试数据库的名称settings.py。有一个特定的TEST字典在DATABASE此设置:
settings.py
...
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'USER': 'mydatabaseuser',
'NAME': 'mydatabase',
'TEST': {
'NAME': 'mytestdatabase',
},
},
}
...
Run Code Online (Sandbox Code Playgroud)
默认情况下,前缀test_被添加到开发数据库的名称中。您应该检查一下settings.py以检查发生了什么。
从文档:
默认的测试数据库的名字前面加上创建
test_到各自的价值NAME在DATABASES。使用SQLite时,默认情况下,测试将使用内存数据库(即,数据库将在内存中创建,完全绕开文件系统!)。将TEST在字典DATABASES提供了大量的设置来配置你的测试数据库。例如,如果要使用其他数据库名称,请在TEST字典中为中的任何给定数据库指定NAMEDATABASES。
| 归档时间: |
|
| 查看次数: |
1276 次 |
| 最近记录: |