首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails + PostgreSQL + rbenv-vars: fe_sendauth:没有使用环境变量提供的密码

Rails + PostgreSQL + rbenv-vars: fe_sendauth:没有使用环境变量提供的密码
EN

Stack Overflow用户
提问于 2017-07-04 06:59:42
回答 3查看 352关注 0票数 1

我正在开发一个使用PostgreSQL的Rails项目,我希望将数据库登录细节存储在一个文件中,并使用rbenv使用环境变量访问它们。我在运行Ubuntu 16.10。

考虑到下列档案:

pg_hba.conf

代码语言:javascript
运行
复制
# Database administrative login by Unix domain socket
local   all             postgres                                peer

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                peer
#host    replication     postgres        127.0.0.1/32            md5
#host    replication     postgres        ::1/128                 md5

database.yml

代码语言:javascript
运行
复制
default: &default
  adapter: postgresql
  encoding: unicode
  host: localhost
  pool: 5
  username: consul
  password: <% ENV['CONSUL_DATABASE_PASSWORD'] %>

..rbenv vars

代码语言:javascript
运行
复制
SECRET_KEY_BASE=(secret key)
CONSUL_DATABASE_PASSWORD=(database password)

当我试图使用rake db:create命令为项目创建数据库时,我会得到以下错误:

代码语言:javascript
运行
复制
fe_sendauth: no password supplied

我试着用明文存储密码,但正如你所想象的那样,我不想这么做。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-07-04 07:01:55

将行更改为

代码语言:javascript
运行
复制
password: <%= ENV['CONSUL_DATABASE_PASSWORD'] %>

<% %>只对内容进行评估

<%= %>计算并将内容插入标记的位置。

有关erb标记What is the difference between <%, <%=, <%# and -%> in ERB in Rails?的更多详细信息,请参阅此答案

票数 0
EN

Stack Overflow用户

发布于 2017-07-04 07:01:34

fe_sendauth:没有提供密码

代码语言:javascript
运行
复制
<% ENV['CONSUL_DATABASE_PASSWORD'] %>

应该是

代码语言:javascript
运行
复制
<%= ENV['CONSUL_DATABASE_PASSWORD'] %>
票数 0
EN

Stack Overflow用户

发布于 2018-04-02 10:40:48

在我的例子中,问题在于我有破折号,而不是在我的环境变量名中突出,即:

代码语言:javascript
运行
复制
<%= ENV['APP-NAME_DATABASE_PASSWORD'] %>

config/database.yml中的变量名更改为APP_NAME_DATABASE_PASSWORD为我修复了它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44899011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档