3
votes

Comment obtenir les rails master.key après la mise à niveau vers les rails 5.2

J'ai donc mis à jour une application sur laquelle je travaille vers les rails 5.2 et elle plante sur Heroku. Je pense que c'est parce que je n'ai pas de fichier master.key dans mon dossier / config. J'ai toujours le fichier secrets.yml de la version précédente de rails. Que dois-je faire pour résoudre ce problème? Merci!

erreur dans les journaux heroku:

2019-01-28T21:07:46.922561+00:00 app[web.1]: /app/vendor/bundle/ruby/2.5.0/gems/aws-sdk-s3-1.30.1/lib/aws-sdk-s3/bucket.rb:684:in `extract_name': Cannot load `Rails.config.active_storage.service`: (ArgumentError)
2019-01-28T21:07:46.922573+00:00 app[web.1]: missing required option :name


0 commentaires

3 Réponses :


4
votes

Vous devez générer master.key et credentials.yml.enc . Pour ce faire, exécutez simplement la commande:

$ heroku config:set RAILS_MASTER_KEY=`cat config/master.key`

(En tant qu'éditeur, vous pouvez utiliser autre chose, par exemple atom ou nano).

En ouvrant l'éditeur, vous pouvez taper informations d'identification et enregistrez-le. Les rails utilisent master.key pour crypter les informations d'identification. Vous pouvez en savoir plus ici: https://medium.com/cedarcode/rails- 5-2-credentials-9b3324851336

Pour que les informations d'identification chiffrées fonctionnent sur Heroku, vous pouvez copier la clé de master.key et l'utiliser pour configurer la variable d'environnement RAILS_MASTER_KEY . Vous pouvez y parvenir par Heroku Dashboard ou Heroku CLI, comme ci-dessous:

run EDITOR=vim rails credentials:edit


1 commentaires

Vous devrez également définir config.require_master_key = true dans config / environnements / production.rb



1
votes

Deux ou trois choses. Parlant de ma propre expérience personnelle, j'ai mis à niveau plusieurs applications Rails vers la version 5.2 et j'ai pu très bien déployer sur Heroku sans cette fonctionnalité. Donc je ne pense pas que ce soit nécessairement ça.

Si vous pouviez exécuter heroku logs --tail --app et nous montrer une trace de la pile des raisons pour lesquelles votre application échoue, cela aiderait certainement.


3 commentaires

Salut merci pour l'aide J'ai ajouté ce qui semble être à l'origine du crash dans les journaux. Est-ce utile?


Merci. J'exécuterais rake app: update à coup sûr. Cela ressemble à une erreur générique liée à ActiveStorage. Peut-être que vos initialiseurs ne sont pas mis à jour ou vous manquez certains des nouveaux initialiseurs?


J'ai exécuté la commande mais la même erreur apparaît toujours. S'il s'agit de mes initialiseurs, que puis-je faire pour y remédier? Je vous remercie!



0
votes

Vous pourrez générer le fichier master.key en utilisant la commande suivante:

Adding config/master.key to store the master encryption key: <YOUR_MASTER_KEY>

Save this in a password manager your team can access.

If you lose the key, no one, including you, can access anything encrypted with it.

      create  config/master.key

Ignoring config/master.key so it won't end up in Git history:

      append  .gitignore

L'exemple de sortie sera le suivant:

$ EDITOR=vim rails credentials:edit

Veuillez consulter la documentation officielle: https: //github.com/rails/rails/blob/master/railties/lib/rails/commands/credentials/USAGE


0 commentaires