Dans cet article, j'expliquerai de manière facile à comprendre comment j'ai pu résoudre l'erreur survenue lors du déploiement avec Heroku.
-L'application déployée sera créée avec le curriculum TECH_CAMP.
・ Parce que l'affiche est un débutant, il / elle peut publier des informations incorrectes. À ce moment-là, je vous serais reconnaissant si vous pouviez le signaler sans hésitation.
brew tap heroku/brew && brew install heroku
heroku login --interactive
~~ 3. Installez rails_12factor Gem. ~~ ~~ → Gem requis pour exécuter l'application Rails sur Heroku. ~~
La gemme Rails_12factor n'est plus nécessaire dans Rails 5 et versions ultérieures. </ b>
Pour plus de détails, consultez l'article Qiita ici.
heroku créer le nom de l'application
heroku addons:add cleardb
heroku_cleardb=`heroku config:get CLEARDB_DATABASE_URL`
Vous avez maintenant attribué l'URL de la base de données ClearDB à une variable appelée heroku_cleardb.
heroku config:set DATABASE_URL=mysql2${heroku_creardb:5}
DATABASE_URL a été réinitialisé par config: set.
heroku config:set RAILS_MASTER_KEY=`cat config/master.key`
git push heroku master
heroku run rails db:migrate
heroku apps:info
A été exécuté pour passer à l'URL affichée.
Lors de la transition vers l'URL, l'écran d'erreur ci-dessus est apparu.
Par conséquent, je suis retourné au terminal et j'ai vérifié le journal des erreurs.
heroku logs --tail
Le journal des erreurs a été affiché avec la commande ci-dessus. La première chose que j'ai remarquée a été
2020-11-11T22:07:09.588453+00:00 (omis) dyno=web.1 connect=14ms service=35ms status=500 bytes=1827 protocol=https
Depuis status = 500, on peut voir qu'il s'agit d'un problème côté serveur.
Si vous regardez de plus près,
Mysql2::Error::ConnectionError (Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)):
Alors, MySQL n'est-il pas reconnu sur Heroku? J'ai pensé </ b>.
En regardant le code du terminal, j'ai également trouvé quelque chose d'étrange dans les paramètres MySQL.
nayuta@MacBookPro-Nayuta ajax_app % heroku_cleardb='heroku config:get CLEARDB_DATABASE_URL'
nayuta@MacBookPro-Nayuta ajax_app % heroku config:set DATABASE_URL=mysql2${heroku_creardb:5}
Setting DATABASE_URL and restarting ⬢ ajax-app-30306... done, v5
DATABASE_URL: mysql2
DATABASE_URL n'est pas stocké correctement.
Mon résultat
DATABASE_URL: mysql2
Résultat correct
DATABASE_URL: mysql2://000000000000:[email protected]/heroku_aaa00000000?reconnect=true
Je pensais qu'il n'y avait pas d'erreur ici, mais en regardant le travail effectué à l'étape 6, il n'y avait pas de faute d'orthographe dans la commande et il semblait qu'elle avait été saisie correctement.
Votre contribution
heroku_cleardb='heroku config:get CLEARDB_DATABASE_URL'
Corriger l'entrée
heroku_cleardb=`heroku config:get CLEARDB_DATABASE_URL`
J'ai regardé le code, l'ai regardé et finalement découvert.
Là où il aurait dû être inclus dans `` (citation arrière), il a été inclus dans '' (revêtement unique).
C'était une erreur très simple, mais j'ai été distrait par les fautes d'orthographe et j'ai été en retard pour le remarquer.
nayuta@MacBookPro-Nayuta ajax_app % heroku_cleardb=`heroku config:get CLEARDB_DATABASE_URL`
nayuta@MacBookPro-Nayuta ajax_app % heroku config:set DATABASE_URL=mysql2${heroku_cleardb:5}
Setting DATABASE_URL and restarting ⬢ ajax-app-30306... done, v12
DATABASE_URL: mysql2://bf691ece578431:[email protected]/heroku_b4193d2f6e19e50?reconnect=true
Si vous le placez correctement entre ``, la réinitialisation de l'URL est terminée.
Cependant, même si vous le poussez tel quel, le message d'erreur suivant apparaîtra, donc
Everything up-to-date
J'ai fait un commit vide et je l'ai fait pousser ensemble.
git commit --allow-empty -m "Validation vide"
git push heroku master
Il semble qu'il ait été poussé normalement, donc lorsque je suis passé à l'URL, l'application créée a été déployée.
J'ai fait attention aux fautes d'orthographe car les fautes de frappe provoquent souvent des erreurs, mais je n'ai jamais imaginé que je ferais des fautes de frappe dans '' et ``. C'était une erreur très terrible, mais j'ai eu de la chance car la valeur d'expérience de "J'ai fait une erreur à cause d'une telle erreur!" A augmenté.
Recommended Posts