Ruby on rails 致命:数据库“;博士后;不存在

Ruby on rails 致命:数据库“;博士后;不存在,ruby-on-rails,postgresql,Ruby On Rails,Postgresql,奇怪的错误。谢谢你的帮助 这是我的数据库 development: adapter: postgresql encoding: unicode database: app_development pool: 5 username: username password: test: adapter: postgresql encoding: unicode database: app_test pool: 5 username: username

奇怪的错误。谢谢你的帮助

这是我的数据库

development:
  adapter: postgresql
  encoding: unicode
  database: app_development
  pool: 5
  username: username
  password:

test:
  adapter: postgresql
  encoding: unicode
  database: app_test
  pool: 5
  username: username
  password:

production:
  adapter: postgresql
  encoding: unicode
  database: app_production
  pool: 5
  username: username
  password:
当我手动创建数据库并尝试使用它们时,例如
rake db:test:preare
我得到以下错误:

FATAL:  database "postgres" does not exist
当我尝试删除数据库时,会出现以下错误:

Couldn't drop app_development : #<PG::Error: FATAL:  database "postgres" does not exist
>
Couldn't drop app_test : #<PG::Error: FATAL:  database "postgres" does not exist
>
Couldn't drop app_production : #<PG::Error: FATAL:  database "postgres" does not exist
app_development already exists
app_test already exists
app_production already exists
看来我的database.yml还可以。但出于某种原因,它正在寻找一个名为postgres的数据库,而我的database.yml中并没有这个数据库

谢谢你的帮助

编辑:

以下是rake跟踪的更多信息:


无法为{“适配器”=>“postgresql”、“编码”=>“unicode”、“数据库”=>“应用程序生产”、“池”=>5、“用户名”=>“用户名”、“密码”=>nil}创建数据库

您尚未说明是否确实有postgres数据库,这正是错误所抱怨的

大概不会,这个“rake”工具正在连接用户postgres和数据库postgres,以便创建新的数据库。很明显,它需要作为一个做任何事情的人来联系


一定要花时间浏览PostgreSQL手册,了解如何启用/控制日志记录。从长远来看,这对你很有好处。我猜rake/rails也有调试/日志设置。

[macosx]在使用Linux时,我从来没有遇到过PostGreSQL问题。然而,我开始使用MacBook,却得到了和你一样的错误。所以也许这不是你期望的解决方案,但这个应用解决了我所有的头疼问题。我只是想和你们分享一下


我使用的是Mac OS X,python和sqlalchemy也有同样的问题。 就像弗拉维奥建议的那样,检查postgresapp并检查如何连接该部分

from sqlalchemy import create_engine
engine = create_engine('postgresql://localhost/[YOUR_DATABASE_NAME]')

嘿,谢谢你的回复。我有一个postgres数据库,在过去的6个月里,我一直在使用它来开发rails应用程序,没有任何戏剧性的变化。如果我使用postgres尝试我的其他应用程序,一切都很好。这个不太确定。我一直在找耙子的痕迹,但找不到anything@user1432031:Richard的意思不是“一个postgres数据库”,而是“一个名为postgres的数据库”——它通常是作为数据库服务器安装的一部分创建的。嘿,这似乎奏效了。我添加了一个数据库postgres,现在乍一看,我的其他rails数据库没有任何问题。我的其他rails数据库以前在没有这个额外数据库的情况下工作过。你们知道为什么会这样吗?@user143231:正如我所说:默认情况下,在安装过程中会创建一个postgres数据库。所以我猜其他的安装都做到了,而新的安装没有(无论出于什么原因)postgres服务db是8.0时代左右的一项相对较新的发明。如果OP使用的是非常旧的pg版本,那么它可能不会附带postgres db。