使用PostgreSQL和Yesod时,postgres.yml文件丢失了

时间:2011-10-26 21:01:49

标签: haskell yesod

使用PostgreSQL作为Yesod的持久解决方案时,我似乎遇到了问题。

我按照“五分钟的Yesod”指南中的步骤进行操作。

我用脚手架创建了一个项目。选择选项t时,一切顺利,我可以在http://localhost:3000看到该应用程序。

但是,当我选择PostgreSQL作为数据库时,输入'yesod devel'命令后出现以下错误

Registering FirstYesod-0.0.0...
Starting development server...
Starting devel application
devel.hs: InvalidYaml (Just "YamlException \"Yaml file not found: config/postgres.yml\"")
Devel application launched, listening on port 3000
Exit code: ExitFailure 11

这个Yaml文件是应该由我添加的,还是安装过程提供的? 如果是这样,有没有人知道它为什么没有创建?

我使用PostgreSQL 8.4.9。它适用于psql和PGAdmin III

1 个答案:

答案 0 :(得分:2)

如果你看,你会看到生成的yml和打开的文件有不同的名称:

devel.hs: InvalidYaml (Just "YamlException \"Yaml file not found: config/postgres.yml\"")

$ ls config
favicon.ico  models  postgresql.yml  routes  settings.yml

所以只需复制(或移动)文件:

$ cp config/postgresql.yml config/postgres.yml

现在你得到一个特定于postgresql的新错误:

devel.hs: SqlError {seState = "", seNativeError = 1, seErrorMsg = "connectPostgreSQL: FATAL:  password authentication failed for user \"B\"\nFATAL:  password authentication failed for user \"B\"\n"}

我不是数据库人员,但是如果知道这个问题的答案(就运行psql后要输入的命令而言)那么我就是全部; - 。)