我真的不明白这里发生了什么......这是一场噩梦!
我在rails app的databasae.yml中有以下内容
development:
adapter: postgresql
encoding: unicode
database: segnalazioni_dev
pool: 5
username: postgres
password: 04210
port: 5432
timeout: 5000
但是当我找到rake db:create
时,我收到了一个身份验证错误,其中使用的密码与04210
不同:
Couldn't create database for {"adapter"=>"postgresql", "encoding"=>"unicode",
"database"=>"segnalazioni_test", "pool"=>5, "username"=>"postgres",
"password"=>2184, "port"=>5432, "timeout"=>5000}
正如您所看到的,密码已更改为04210
到2184
。我试图将其他密码放在database.yml文件中,只要它们不以0开头,就会在rake db命令中使用它们,因为它应该是。但是我的postgres用户的密码是04210,我需要使用那个!!!
答案 0 :(得分:5)
这是因为您使用号码 04210
而不是字符串 "04210"
。 YAML解释器将“04210”读作八进制值, which is 2184 in base 10 ,因此显示“2184”。
要解决此问题,请选择不以零开头的数字密码,或更改database.yml以使用字符串:
development:
adapter: postgresql
encoding: unicode
database: segnalazioni_dev
pool: 5
username: postgres
password: "04210" # Now it's a string instead of a number.
port: 5432
timeout: 5000
答案 1 :(得分:0)
线索不在数据库名称中吗?看起来你在Test not Development中运行,不是吗?