При тестировании Django создает тестовую базу данных для работы, чтобы ваша база данных разработки не была загрязнена. В сообщении об ошибке говорится, что Django пытается создать тестовую базу данных с именем "database_name"
и эта база данных уже существует. Вам следует проверить таблицы программного обеспечения базы данных, которое вы используете, и проверить, что находится в database_name
, возможно, оно было создано по ошибке.
Если вы введете yes, база данных database_name
будет удалена, и маловероятно, что вы сможете восстановить данные . Поэтому постарайтесь сначала понять, что происходит.
Вы должны установить имя тестовой базы данных в settings.py
. В настройках DATABASE
есть специальный TEST
словарь для этого:
settings.py
...
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'USER': 'mydatabaseuser',
'NAME': 'mydatabase',
'TEST': {
'NAME': 'mytestdatabase',
},
},
}
...
По умолчанию префикс test_
добавляется к имени вашей базы данных разработки. Вы должны проверить свой settings.py
, чтобы проверить, что происходит.
Из документов :
Имена тестовой базы данных по умолчанию создаются путем добавления test_
к значению каждого NAME
в DATABASES
. При использовании SQLite тесты будут использовать базу данных в памяти по умолчанию (то есть база данных будет создана в памяти, полностью обходя файловую систему!). Словарь TEST
в DATABASES
предлагает ряд настроек для настройки тестовой базы данных. Например, если вы хотите использовать другое имя базы данных, укажите NAME в словаре TEST
для любой базы данных в DATABASES
.