簡體   English   中英

“生產”環境缺少“secret_key_base”,但它在我的加密文件中

[英]Missing `secret_key_base` for 'production' environment but it is in my encrypted file

我正在開發 6.0.2 rails 應用程序,並且在開發中一切似乎都運行良好(我可以創建數據庫並在本地主機上運行應用程序)。 但是,我一直在努力使其在生產中工作。 我有一個包含我的密鑰的master.key文件和一個包含: secret_key_base: 123... (當然是我的真實密鑰)的credentials.yml.enc文件。

有了這個,我試圖運行RAILS_ENV=production rails db:setup但它總是失敗並出現以下錯誤:

rails aborted!
ArgumentError: Missing `secret_key_base` for 'production' environment, set this string with `rails credentials:edit`
/Users/victor/.rvm/gems/ruby-2.6.3/gems/railties-6.0.2.1/lib/rails/application.rb:580:in `validate_secret_key_base'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/railties-6.0.2.1/lib/rails/application.rb:423:in `secret_key_base'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/devise-4.7.1/lib/devise/secret_key_finder.rb:24:in `key_exists?'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/devise-4.7.1/lib/devise/secret_key_finder.rb:16:in `find'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/devise-4.7.1/lib/devise/rails.rb:37:in `block in <class:Engine>'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/railties-6.0.2.1/lib/rails/initializable.rb:32:in `instance_exec'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/railties-6.0.2.1/lib/rails/initializable.rb:32:in `run'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/railties-6.0.2.1/lib/rails/initializable.rb:61:in `block in run_initializers'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/railties-6.0.2.1/lib/rails/initializable.rb:60:in `run_initializers'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/railties-6.0.2.1/lib/rails/application.rb:363:in `initialize!'
/Users/victor/Documents/SaaS projects/myblog/config/environment.rb:5:in `<main>'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/zeitwerk-2.3.0/lib/zeitwerk/kernel.rb:23:in `require'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/activesupport-6.0.2.1/lib/active_support/dependencies.rb:325:in `block in require'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/activesupport-6.0.2.1/lib/active_support/dependencies.rb:291:in `load_dependency'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/activesupport-6.0.2.1/lib/active_support/dependencies.rb:325:in `require'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/railties-6.0.2.1/lib/rails/application.rb:339:in `require_environment!'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/railties-6.0.2.1/lib/rails/application.rb:515:in `block in run_tasks_blocks'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/railties-6.0.2.1/lib/rails/commands/rake/rake_command.rb:23:in `block in perform'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/railties-6.0.2.1/lib/rails/commands/rake/rake_command.rb:20:in `perform'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/railties-6.0.2.1/lib/rails/command.rb:48:in `invoke'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/railties-6.0.2.1/lib/rails/commands.rb:18:in `<main>'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/activesupport-6.0.2.1/lib/active_support/dependencies.rb:325:in `block in require'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/activesupport-6.0.2.1/lib/active_support/dependencies.rb:291:in `load_dependency'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/activesupport-6.0.2.1/lib/active_support/dependencies.rb:325:in `require'
/Users/victor/Documents/SaaS projects/myblog/bin/rails:9:in `<top (required)>'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/spring-2.1.0/lib/spring/client/rails.rb:28:in `load'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/spring-2.1.0/lib/spring/client/rails.rb:28:in `call'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/spring-2.1.0/lib/spring/client/command.rb:7:in `call'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/spring-2.1.0/lib/spring/client.rb:30:in `run'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/spring-2.1.0/bin/spring:49:in `<top (required)>'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/spring-2.1.0/lib/spring/binstub.rb:11:in `load'
/Users/victor/.rvm/gems/ruby-2.6.3/gems/spring-2.1.0/lib/spring/binstub.rb:11:in `<top (required)>'
/Users/victor/Documents/SaaS projects/myblog/bin/spring:15:in `require'
/Users/victor/Documents/SaaS projects/myblog/bin/spring:15:in `<top (required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'
Tasks: TOP => db:setup => db:schema:load_if_ruby => db:create => db:load_config => environment
(See full trace by running task with --trace)

我在這里真的很困惑,因為它說沒有secret_key_base但它在我的credentials.yml.enc定義(它是那里唯一的東西!)

我查看了一堆其他 stackoverflow 問題,發現這個問題通常是由於 Rails 必須處理加密文件的舊方式(但我在 6.0.2 中,所以這應該不是問題......)。 我發現的唯一其他答案建議刪除master.keycredentials.yml.enc並使用rails credentials:edit創建新的,我做了,但它沒有改變任何東西。

像這樣指定環境應該有助於解決這個問題。

rails credentials:edit --environment production

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM