[RAILS] [Heroku] Traitement des erreurs de post-déploiement Impossible de charger l'adaptateur Active Record "mysql".

Qu'est-il arrivé

J'avais l'intention de créer une API Web avec Rails et de la déployer sur Heroku, mais l'affichage du navigateur ressemble à ceci ↓

スクリーンショット 2020-10-03 16.11.47.png

Pour le moment, il est dit $ heroku logs --tail, donc

・
· (Omis)
・
2020-10-03T07:07:22.331249+00:00 app[web.1]: /usr/local/bundle/bin/puma:23:in `<top (required)>'
2020-10-03T07:07:22.468514+00:00 heroku[web.1]: Process exited with status 1
2020-10-03T07:07:22.527787+00:00 heroku[web.1]: State changed from starting to crashed
2020-10-03T07:07:23.246388+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=coko-api.herokuapp.com request_id=****** fwd=*******" dyno= connect= service= status=503 bytes= protocol=https

Hmm. .. Je comprends que la réponse est 503, mais si vous allez un peu plus loin et $ heroku run rails c,

・
· (Omis)
・
Could not load the 'mysql' Active Record adapter. Ensure that the adapter is spelled correctly in config/database.yml and that you've added the necessary adapter gem to your Gemfile. (LoadError)

Oh, il semble y avoir une erreur autour des paramètres MySQL. Traduire ci-dessous ↓

L'adaptateur ActiveRecord'mysql 'n'a pas pu être chargé. Assurez-vous que l'adaptateur est correctement orthographié dans config / database.yml et que le gem d'adaptateur requis est ajouté au Gemfile. (LoadError)

Lorsque j'enquêtais sur cette erreur, il y avait environ 2 modèles, je vais donc résumer les contre-mesures.

Motif 1. Non défini sur Gemfile en premier lieu

Il est rare que vous ne le remarquiez pas, mais vérifions-le.

Gemfile


gem 'mysql2'  # <<Postscript

Déployer après modification

Modèle 2. Variable d'environnement Miss in Heroku

Vérifiez les variables d'environnement en vous reportant à Modifier la base de données lors de l'utilisation de l'application heroku avec Rails vers MySQL.

$ heroku config
=== coko-api Config Vars
CLEARDB_DATABASE_URL:  mysql://***:***@***.cleardb.com/heroku_***?reconnect=true
DATABASE_URL:          mysql://***:***@***.cleardb.com/heroku_***?reconnect=true
・
· (Omis)
・

Je me demande si cela correspond à première vue. .. ..

DATABASE_URL commence par mysql au lieu de mysql2 !!

Modifiez avec $ heroku config: set ( CLEARDB_DATABASE_URL peut être laissé comme mysql)

$ heroku config:set DATABASE_URL='mysql2://***:***@***.cleardb.com/heroku_***?reconnect=true'

Une fois modifié, il sera reflété tel quel sans déploiement.

スクリーンショット 2020-10-03 17.01.27.png

J'ai pu confirmer la réponse de ma propre API ~

Dans mon cas, j'étais coincé dans le modèle 2.

Recommended Posts

[Heroku] Traitement des erreurs de post-déploiement Impossible de charger l'adaptateur Active Record "mysql".