【heroku】”php artisan migrate”が実行できない(laravel・MySQL)
解決したいこと
Laravelで【インスタグラムのような画像投稿できるWebアプリ】を作っております。
現在、無料版herokuを使ってデプロイしようとしているのですが、”php artisan migrate”でエラーが発生いたします。
解決方法について、どうかご教示ください。
デプロイしたいアプリの仕様
- アプリ内で用意しているHTMLのFormで画像を投稿すると、public(/storage)ディレクトリに保存される
- DBへは投稿された画像の文字列のみが保存される
- 画像表示はシンボリックリンクを用いている
発生しているエラー
今回、下記のYouTube動画を参照しながら、自作アプリをデプロイしようといたしました。
過去に1度だけ、この動画を参照しながら自力でデプロイできた経験がありました。
ただ、その時にデプロイしたアプリには『画像投稿の機能』は含まれておりませんでした。
今回も同様の手順で行っていたところ、動画22分付近の【ターミナルに”php artisan migrate”を入力する】を実行した時点で、下記のエラーメッセージが発生いたしました。
production.ERROR:
SQLSTATE[HY000] [2002] Connection timed out
(SQL: select * from information_schema.tables where table_schema = heroku_cb8bb29ed26a23b and table_name = migrations and table_type = 'BASE TABLE')
{"exception":"[object] (Illuminate\\Database\\QueryException(code: 2002):
SQLSTATE[HY000] [2002] Connection timed out
(SQL: select * from information_schema.tables where table_schema = heroku_cb8bb29ed26a23b and table_name = migrations and table_type = 'BASE TABLE')
at /app/vendor/laravel/framework/src/Illuminate/Database/Connection.php:703)
エラー発生から自分で試したこと
エラーの原因を探るため、"heroku run php artisan tinker"をターミナルに入力すると、以下のようになりました。
heroku run php artisan tinker
Running php artisan tinker on ⬢ damp-journey-33395... up, run.5398 (Free)
Psy Shell v0.10.9 (PHP 8.0.12 — cli) by Justin Hileman
>>> config
PHP Error: Undefined constant "config" in Psy Shell code on line 1
>>> config('database.default')
=> "mysql"
>>> config('database.connections.mysql')
=> [
"driver" => "mysql",
"url" => "mysql://"ユーザーネーム":"パスワード"@"ホスト"/"データベース"?reconnect=true",
"host" => "ホスト",
"port" => "8889",
"database" => "データベース",
"username" => "ユーザーネーム",
"password" => "パスワード",
"unix_socket" => "",
"charset" => "utf8mb4",
"collation" => "utf8mb4_unicode_ci",
"prefix" => "",
"prefix_indexes" => true,
"strict" => true,
"engine" => null,
"options" => [],
しかし、原因を見つけることができません。
今回デプロイしようとしているアプリには画像投稿機能が含まれているため、『AWS・EC2』を導入する必要があるとも考えてました。
しかし、色々と調べると、それ以前の問題ではないかと考えております。
このエラーに対し10日ほど費やしましたが、解決の糸口さえ掴めません。
私の力量では、自力での解決は不可能と判断し、恥ずかしながら、この問題について投稿させていただきました。
何卒、よろしくお願いいたします。