为什么Rails显然会更改我的数据库密码?

时间:2013-12-25 13:31:12

标签: ruby-on-rails postgresql

我真的不明白这里发生了什么......这是一场噩梦!

我在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}

正如您所看到的,密码已更改为042102184。我试图将其他密码放在database.yml文件中,只要它们不以0开头,就会在rake db命令中使用它们,因为它应该是。但是我的postgres用户的密码是04210,我需要使用那个!!!

2 个答案:

答案 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中运行,不是吗?