Ruby on rails “接收”;PG::ConnectionBad fe_sendauth:未提供密码;在rails的环境变量中存储密码时出错
我最近将db从sqlite3切换到PG。我的PG用户名和密码是硬编码的,虽然它可以工作,但这不是安全的做法。因此,我将密码存储在.yml文件中的一个ENV变量中,并在database.yml文件中引用该变量,但当我运行服务器时,会出现错误“PG::ConnectionBad” fe_sendauth:未提供密码“ 以下是我的pg_keys.yml文件Ruby on rails “接收”;PG::ConnectionBad fe_sendauth:未提供密码;在rails的环境变量中存储密码时出错,ruby-on-rails,ruby,pg,Ruby On Rails,Ruby,Pg,我最近将db从sqlite3切换到PG。我的PG用户名和密码是硬编码的,虽然它可以工作,但这不是安全的做法。因此,我将密码存储在.yml文件中的一个ENV变量中,并在database.yml文件中引用该变量,但当我运行服务器时,会出现错误“PG::ConnectionBad” fe_sendauth:未提供密码“ 以下是我的pg_keys.yml文件 PG_PASSWORD: "***********" 下面是我的database.yml文件: default: &
PG_PASSWORD: "***********"
下面是我的database.yml文件:
default: &default
adapter: postgresql
encoding: unicode
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
timeout: 5000
development:
<<: *default
database: stockapp_development
username: postgres
password: <%= ENV['PG_PASSWORD'] %>
host: localhost
# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
<<: *default
database: stockapp_test
host: localhost
username: postgres
password: <%= ENV['PG_PASSWORD'] %>
production:
<<: *default
database: stockapp_production
username: stockapp
password: <%= ENV['STOCKAPP_DATABASE_PASSWORD'] %>
default:&default
适配器:postgresql
编码:unicode
游泳池:
超时:5000
发展:
这是因为ENV
变量来自
通过将此gem添加到gem文件
,安装此gem,然后运行bundle
,并在根目录中的.env
中设置变量PGèu PASSWORD=***************
。那么它应该可以正常工作