gpt4 book ai didi

ruby-on-rails - 无法访问 `database.yml` 文件中的环境变量

转载 作者:行者123 更新时间:2023-12-03 05:34:39 25 4
gpt4 key购买 nike

我的 development.yml 文件中有以下开发部分:

development:
adapter: postgresql
host: localhost
database: testtb
username: app_user
password: ENV['APP_USER_POSTGRES_PASSWORD'] <= Troublesome line

当我通过 bundle exec Rails console 打开 Rails 控制台并输入 ENV['APP_USER_POSTGRES_PASSWORD'] 时,我会取回我在本地配置文件中指定的数据库密码。但是,当我启动 Rails 服务器时,它无法连接到数据库,失败并显示

PGError FATAL:  password authentication failed for user "app_user"

以前,当我以纯文本形式实际输入数据库密码,而不是尝试通过 ENV['...'] 访问它时,这是有效的,但出于明显的原因,我想将实际密码完全保留在该文件之外(因此也保留在代码存储库之外),同时仍然能够对 database.yml 文件提交其他非安全更改。

我缺少的语法有什么特别之处,或者加载 database.yml 文件时环境变量是否由于某种原因不可用?

最佳答案

更新:有些人在评论中报告说此 doesn't work从 Rails 4.2.x.x 开始。我自己还没试过,所以YMMV。

<小时/>

啊,终于找到了简单的解决方案 - 它接受嵌入式 Ruby:

password: <%= ENV['APP_USER_POSTGRES_PASSWORD'] %>

关于ruby-on-rails - 无法访问 `database.yml` 文件中的环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8686215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com