ruby-on-rails - rails凭据未获取
问题描述
我通过 rails credentials:edit 命令创建了 rails config/master.key 和 config/credentials.yml.enc
在 Rails 控制台上,我能够获取值,但是当我运行 rake db:migrate 时,出现此错误:
invalid port number: "Rails.application.credentials.development[:port]"
Couldn't create 'Rails.application.credentials.development[:database]' database. Please check your configuration.
rake aborted!
PG::ConnectionBad: invalid port number: "Rails.application.credentials.development[:port]"
/home/ec2-user/.rvm/gems/ruby-2.6.1/gems/pg-1.1.4/lib/pg.rb:56:in `initialize'
/home/ec2-user/.rvm/gems/ruby-2.6.1/gems/pg-1.1.4/lib/pg.rb:56:in `new'
/home/ec2-user/.rvm/gems/ruby-2.6.1/gems/pg-1.1.4/lib/pg.rb:56:in `connect'
/home/ec2-user/.rvm/gems/ruby-2.6.1/gems/activerecord-5.2.3/lib/active_record/railties/databases.rake:29:in `block (2 levels) in <main>'
Tasks: TOP => db:create
(See full trace by running task with --trace)
#config/environments/development.rb
config.require_master_key = true
#config/credentials.yml.enc
development:
database: xxxxxxxx
username: yyyyyyyy
password: zzzzzzzz
host: aaaaaaa.com
port: 1234
# Used as the base secret for all MessageVerifiers in Rails, including the one protecting cookies.
secret_key_base: 1234567890
#config/database.yml
default: &default
adapter: postgresql
encoding: utf8
database: Rails.application.credentials.development[:database]
username: Rails.application.credentials.development[:username]
password: Rails.application.credentials.development[:password]
host: Rails.application.credentials.development[:host]
port: Rails.application.credentials.development[:port]
development:
<<: *default
解决方案
看起来语法上的问题
您需要像这样使用插值:
database: <%= Rails.application.credentials.development[:database] %>
username: <%= Rails.application.credentials.development[:username] %>
password: <%= Rails.application.credentials.development[:password] %>
host: <%= Rails.application.credentials.development[:host] %>
port: <%=Rails.application.credentials.development[:port] %>
推荐阅读
- pine-script - 只有在蜡烛关闭 5 分钟后才需要触发入场警报
- typescript - 如何解决“类型循环引用自身错误”?
- while-loop - Nim 中的迭代器生成函数:分配迭代器时工作,直接调用时卡住
- reactjs - React 测试模拟实现一,使用模拟函数
- javascript - Slick.js 循环问题
- java - 带有路径变量的 Spring Boot AuthenticationToken
- windows - Docker multistage - 如果基本图像不同,则参数不会持续存在
- javascript - 对象的类型未知
- java - 如何使用 RxJava 代替 AsyncTask 来加载数据?
- docker - Windows DockerFile 复制文件夹