当我尝试运行时
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安装上手动输入密码。
答案 0 :(得分:1)
Django测试使用不同的数据库;您的DATABASE_NAME设置附加了“_test”。我的第一个猜测是你的Postgres身份验证配置中的某个位置(在pg_hba.conf或〜/ .pgpass文件中),你允许访问没有密码的DATABASE_NAME,但你没有相同的DATABASE_NAME_test配置。
答案 1 :(得分:0)
我认为这是我的一些设定 忘记。
不要试图愚弄你,但有时候会忽略简单的解决方案: 您是否在settings.py文件中设置了DATABASE_PASSWORD设置?