无法在Heroku中添加/更新配置变量的解决方案咨询
解决Heroku中RAILS_MASTER_KEY无法更新导致发布失败的问题
问题背景
修改Rails凭据文件后,推送代码到Heroku出现ActiveSupport::MessageEncryptor::InvalidMessage错误,尝试通过CLI或Heroku UI更新RAILS_MASTER_KEY配置变量均无效,回滚版本后问题仍存在。
解决方案
1. 回滚到正常运行的版本
必须确保应用处于成功发布的健康状态,否则Heroku会阻止配置变量的变更:
heroku rollback --app my-platform
执行后访问应用,确认无报错、功能正常。
2. 更新并验证RAILS_MASTER_KEY
应用状态正常后,重新设置密钥:
heroku config:set RAILS_MASTER_KEY=你的正确密钥 --app my-platform
执行完立即验证是否更新成功:
heroku config:get RAILS_MASTER_KEY --app my-platform
确认输出的密钥是你刚设置的新值。
3. 重新推送最新代码
变量确认更新后,推送包含最新credentials.yml.enc的代码:
git push heroku main # 替换为你的实际分支名
备选方案(若上述步骤无效)
若仍无法修改变量,尝试先移除旧密钥再重新设置:
heroku config:unset RAILS_MASTER_KEY --app my-platform heroku config:set RAILS_MASTER_KEY=你的正确密钥 --app my-platform
完成后再次推送代码。
注意事项
- 本地先验证密钥正确性:执行
rails credentials:show,若能正常显示凭据内容,说明密钥与credentials.yml.enc匹配。 - 确保无其他团队成员同时操作应用配置,避免冲突。
内容的提问来源于stack exchange,提问作者s89_




