heroku + Laravel で外部サーバー上にあるデータベースに接続する
結論
herokuはデプロイが独特ですが、中身は普通のサーバーなので、 Laravelのconfigのdatabase部分に、データベースの設定をすれば動きました。 ただし、ご存知のように、herokuのLaravelの設定は.envに書いても意味ありませんので…。
heroku config:set DB_CONNECTION=mysql heroku config:set DB_HOST=ccccc heroku config:set DB_DATABASE=ddddd heroku config:set DB_USERNAME=aaaaa heroku config:set DB_PASSWORD=bbbbb
みたく地道にconfig:setでherokuに環境変数を設定していく必要はあります。
heroku上のLaravelの設定の確認
まずtinker起動。
heroku run php artisan tinker
config('database.default');
でdatabaseのドライバーの確認。
mysqlやpgsql
とかでるはずです。この文字列をdatabase.connectionsの後ろにつけて
config('database.connections.pgsql');
と実行すると、Laravelのデータベースの設定がでますので、
> config('database.connections.pgsql');
= [
"driver" => "pgsql",
"url" => null,
"host" => "123.123.123.12などのipか、hogehoge.comみたいなhost名か",
"port" => "5432とかのポート番号",
"database" => "データベース名",
"username" => "postgresのユーザー名",
"password" => "パスワード",
"charset" => "utf8",
"prefix" => "",
"prefix_indexes" => true,
"search_path" => "public",
"sslmode" => "prefer",
]
とかでるので、そこで確認できます。