TL;DR
Se você quer apenas a solução, aqui está. Certifique-se de que seu servidor Postgres tenha um banco de dados "postgres". Você pode verificar conectando-se via
psql
, e executando /list
ou /l
. Você pode criar o banco de dados executando:CREATE DATABASE postgres
em psql. Estendido
O Django prefere não executar "consultas de inicialização" (presumivelmente coisas como criar o banco de dados de teste) do banco de dados "default" especificado em seu
DATABASES
contexto. Presume-se que este seja o banco de dados de produção, então seria do interesse do Django não mexer lá. É por isso que no início dos testes, isso é mostrado (ignore meu sistema de arquivos):
/Users/dcgoss/Desktop/Pickle/PickleBackend/venv/lib/python3.4/site-packages/django/db/backends/postgresql/base.py:247:
RuntimeWarning: Normally Django will use a connection to the 'postgres' database to avoid running initialization queries against the production database when it's not needed
(for example, when running tests). Django was unable to create a connection to the 'postgres' database and will use the default database instead.
RuntimeWarning
O Django procura um banco de dados chamado "postgres" no host especificado em seu
DATABASES
settings, é aqui que ele executa as consultas para criar e excluir seu banco de dados de teste. (Nota:o Django não precisa que o banco de dados "postgres" seja explicitamente especificado em suas configurações, ele apenas o procura em qualquer servidor de banco de dados especificado em suas configurações). Parece que se este banco de dados "postgres" não existir, o Django pode criar o banco de dados de teste e executar os testes, mas não pode deletar o banco de dados de teste. Isso pode ser porque o Postgres não permite que você elimine o banco de dados ao qual você está conectado atualmente, no entanto, para mim, parece que não há razão para que o Django não possa simplesmente descartar o banco de dados de teste do banco de dados "padrão" (produção) especificado em as configurações. Presumo que esteja usando o banco de dados "padrão" para criar o banco de dados de teste, então parece que não há razão para que ele não possa excluí-lo também.
Independentemente disso, a solução foi apenas criar esse banco de dados "postgres" com uma instrução SQL simples:
CREATE DATABASE postgres
. Depois que esse banco de dados foi criado, tudo funcionou bem.