我在测试时遇到问题。这是我第一次编写测试,但遇到了问题。
我刚刚在应用users
和test_urls.py
内创建了一个测试文件夹,用于测试网址。
当我键入:
python manage.py test users
它说:
为别名“默认”创建测试数据库...创建时出错 测试数据库:数据库“ database_name”已经存在
如果您想尝试删除测试数据库,请输入“是” 'database_name'或'no'取消:
是什么意思?如果输入是会怎样?我会丢失数据库中的所有数据吗?
答案 0 :(得分:3)
在测试时,Django创建一个可继续使用的测试数据库,以便您的开发数据库不会受到污染。错误消息表明Django正在尝试创建名为 echo "<td>";?> <img src="<?php echo $row["image"]; ?>" height = "100" width = "100" border="1"> <?php echo "</td>"; //row에 값넣는 것
echo "<td>" . $row['bookName'] . "</td>";
echo "<td>" . $row['publisher'] . "</td>";
echo "<td>" . $row['writer'] . "</td>";
echo "<td>" . $row['libraryowned'] . "</td>";
echo "<td>" . $row['codenumber'] . "</td>";
// I want to button here
echo "<td>" . $row['loan'] . "</td>";
echo "<td>" . $row['publicationdate'] . "</td>";
echo "<td>" . $row['reservation'] . "</td>";
echo "<td>" . $row['borrowdate'] . "</td>";
echo "<td>" . $row['returndate'] . "</td>";
echo "<tr></tr>";
的测试数据库,并且该数据库已存在。您应该检查所用数据库软件的表,并检查"database_name"
中的内容,它可能是错误创建的。
如果键入yes,数据库database_name
将被删除,并且您不太可能恢复数据。因此,尝试先了解发生了什么。
您应该在database_name
中设置测试数据库的名称。 settings.py
设置中有一个特定的TEST
dictionary:
DATABASE
settings.py
默认情况下,前缀...
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'USER': 'mydatabaseuser',
'NAME': 'mydatabase',
'TEST': {
'NAME': 'mytestdatabase',
},
},
}
...
被添加到开发数据库的名称中。您应该检查自己的test_
来检查情况。
来自docs:
通过在
settings.py
中将每个test_
的值前面加上NAME
来创建默认的测试数据库名称。使用SQLite时,默认情况下测试将使用内存数据库(即数据库将在内存中创建,完全绕开文件系统!)。DATABASES
中的TEST
词典提供了许多用于配置测试数据库的设置。例如,如果要使用其他数据库名称,请在DATABASES
字典中为TEST
中的任何给定数据库指定NAME。