Quando Django esegue la suite di test, crea un nuovo database, nel tuo caso test_finance
. L'utente postgres con nome utente django
non dispone dell'autorizzazione per creare un database, da qui il messaggio di errore.
Quando esegui migrate
o syncdb
, Django non tenta di creare la finance
database, in modo da non ricevere alcun errore.
Puoi aggiungere l'autorizzazione createb all'utente django eseguendo il seguente comando nella shell postgres come superutente (consiglio di cappello a questa risposta di overflow dello stack).
=> ALTER USER django CREATEDB;
Nota: Il nome utente utilizzato in ALTER USER <username> CREATEDB;
il comando deve corrispondere all'utente del database nei file delle impostazioni di Django. In questo caso, il poster originale aveva l'utente come django
la risposta sopra.