运行“manage.py test”时请求的数据库密码

时间:2010-01-18 09:32:52

标签: python django

当我尝试运行时

manage.py test

显示数据库密码提示。

以前,测试会在没有我必须手动输入数据库密码的情况下运行。 我刚刚将我的数据库更新为postgres 8.4。我认为这是我忘记的一些设置。

如何配置它以在不询问密码的情况下运行测试?

其他信息

我使用用户'postgres'创建了数据库,但是使用用户'postgis'访问django。我检查了这些用户的权限,它们是相同的。

运行测试时,db和表创建正常(没有请求密码)。 只有在安装“自定义SQL”时才会请求密码。

解决

正如Carl指出〜/ .pgpass文件[* nix]和%APPDATA%\ postgresql \ pgpass.conf(其中%APPDATA%引用用户配置文件中的Application Data子目录)[windows]允许您配置数据库,因此您不需要每次都输入密码。

请参阅postgres文档:The Password File

我检查了我的配置,看起来这个文件是/是自动创建的。我更新了我的密码文件,现在运行django测试而无需在每个自定义sql安装上手动输入密码。

2 个答案:

答案 0 :(得分:1)

Django测试使用不同的数据库;您的DATABASE_NAME设置附加了“_test”。我的第一个猜测是你的Postgres身份验证配置中的某个位置(在pg_hba.conf或〜/ .pgpass文件中),你允许访问没有密码的DATABASE_NAME,但你没有相同的DATABASE_NAME_test配置。

答案 1 :(得分:0)

  

我认为这是我的一些设定   忘记。

不要试图愚弄你,但有时候会忽略简单的解决方案: 您是否在settings.py文件中设置了DATABASE_PASSWORD设置?