In diesem Artikel werde ich auf leicht verständliche Weise erklären, wie ich den Fehler beheben konnte, der bei der Bereitstellung mit Heroku aufgetreten ist.
-Die bereitgestellte Anwendung wird mit dem Lehrplan TECH_CAMP erstellt.
・ Da das Poster ein Anfänger ist, kann es sein, dass er / sie falsche Informationen veröffentlicht. Zu dieser Zeit würde ich es begrüßen, wenn Sie darauf hinweisen könnten, ohne etwas zu unterlassen.
brew tap heroku/brew && brew install heroku
heroku login --interactive
~~ 3. Installiere rails_12factor Gem. ~~ ~~ → Gem erforderlich, um die Rails-Anwendung auf Heroku auszuführen. ~~
Rails_12-Faktor-Edelstein wird in Rails 5 und höher nicht mehr benötigt. </ b>
Weitere Informationen finden Sie im Qiita-Artikel hier.
Heroku erstellen Anwendungsnamen
heroku addons:add cleardb
heroku_cleardb=`heroku config:get CLEARDB_DATABASE_URL`
Sie haben jetzt die ClearDB-Datenbank-URL einer Variablen namens heroku_cleardb zugewiesen.
heroku config:set DATABASE_URL=mysql2${heroku_creardb:5}
DATABASE_URL wurde von config: set zurückgesetzt.
heroku config:set RAILS_MASTER_KEY=`cat config/master.key`
git push heroku master
heroku run rails db:migrate
heroku apps:info
Wurde ausgeführt, um zur angezeigten URL zu wechseln.
Beim Übergang zur URL wurde der obige Fehlerbildschirm angezeigt.
Daher kehrte ich zum Terminal zurück und überprüfte das Fehlerprotokoll.
heroku logs --tail
Das Fehlerprotokoll wurde mit dem obigen Befehl angezeigt. Das erste was mir auffiel war
2020-11-11T22:07:09.588453+00:00 (weggelassen) Dyno=web.1 connect=14ms service=35ms status=500 bytes=1827 protocol=https
Da status = 500 ist, ist ersichtlich, dass dies ein serverseitiges Problem ist.
Wenn Sie genauer hinschauen,
Mysql2::Error::ConnectionError (Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)):
Wird MySQL auf Heroku nicht erkannt? Ich dachte </ b>.
Wenn ich auf den Terminalcode zurückblicke, fand ich auch etwas Seltsames an den MySQL-Einstellungen.
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 wird nicht korrekt gespeichert.
Mein Ergebnis
DATABASE_URL: mysql2
Richtiges Ergebnis
DATABASE_URL: mysql2://000000000000:[email protected]/heroku_aaa00000000?reconnect=true
Ich dachte, dass es hier keinen Fehler gab, aber wenn ich auf die in Schritt 6 geleistete Arbeit zurückblicke, gab es keine Rechtschreibfehler des Befehls, und es schien, dass er korrekt eingegeben wurde.
Deine Eingabe
heroku_cleardb='heroku config:get CLEARDB_DATABASE_URL'
Richtige Eingabe
heroku_cleardb=`heroku config:get CLEARDB_DATABASE_URL`
Ich starrte den Code an, sah ihn nach und fand es schließlich heraus.
Wo es in "(rückseitiges Zitat) hätte eingeschlossen werden sollen, wurde es in" (Einzelbeschichtung) eingeschlossen.
Es war ein sehr einfacher Fehler, aber ich war von den Rechtschreibfehlern abgelenkt und bemerkte es zu spät.
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
Wenn Sie es ordnungsgemäß in `` einschließen, ist das Zurücksetzen der URL abgeschlossen.
Selbst wenn Sie es so drücken, wie es ist, wird die folgende Fehlermeldung angezeigt
Everything up-to-date
Ich machte ein leeres Commit und ließ es zusammenschieben.
git commit --allow-empty -m "Leeres Commit"
git push heroku master
Es scheint, dass es normal gepusht wurde. Als ich zur URL überging, wurde die erstellte Anwendung bereitgestellt.
Ich war vorsichtig mit Rechtschreibfehlern, da es häufig zu Fehlern aufgrund von Tippfehlern kommt, aber ich hätte nie gedacht, dass ich Tippfehler in '' und '' machen würde. Es war ein sehr schrecklicher Fehler, aber ich hatte das Glück, dass der Erfahrungswert von "Ich habe aufgrund eines solchen Fehlers einen Fehler gemacht!" Erhöht wurde.
Recommended Posts