奇怪的错误。所有帮助赞赏。
这是我的database.yml
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
如果我尝试使用rake db:create:all
创建数据库,则会出现以下错误:
app_development already exists
app_test already exists
app_production already exists
所以看来我的database.yml没问题。但出于某种原因,它正在寻找一个名为postgres的数据库,当时这不是我的database.yml中的内容。
任何帮助表示感谢。
编辑:
这里有更多来自rake的痕迹:
无法为{“adapter”=&gt;“postgresql”,“encoding”=&gt;“unicode”,“database”=&gt;“app_production”,“pool”=&gt; 5,“用户名”创建数据库“=&gt;”用户名“,”密码“=&gt; nil}
答案 0 :(得分:4)
[Mac OS X]在使用Linux时,我从未遇到PostGreSQL的任何问题。但是,我开始使用MacBook并得到与您相同的错误。所以...可能这不是你期望的解决方案,但是这个应用程序解决了我所有的麻烦。我只想和你们分享。
答案 1 :(得分:2)
你没有说过你是否真的有一个postgres数据库,这就是错误所抱怨的。
可能不是,这个“rake”工具将用户postgres连接到数据库postgres,因此它可以创建新的数据库。显然,它需要作为某人做任何连接。
请花点时间浏览PostgreSQL手册,了解如何启用/控制日志记录。从长远来看,它将为您提供良好的服务。我猜也有rake / rails的调试/日志设置。
答案 2 :(得分:0)
我使用的是Mac OS X,但python和sqlalchemy也有同样的问题。 就像Flavio建议的一样,检查postgresapp并检查如何连接部分。
from sqlalchemy import create_engine
engine = create_engine('postgresql://localhost/[YOUR_DATABASE_NAME]')