[Heroku] .envファイルで環境変数を設定・管理する

通常、herokuで環境変数を設定管理するには、webのdashboardを利用するかheroku CLIconfigコマンドを利用します。

configコマンドを利用する場合は、以下の例のように[変数]=[値]のように設定します。

$ heroku config:set DEBUG=False

が、設定する環境変数の数が多いと一回ずつコマンドを打つのが面倒だったりします。

そこで環境変数を.envファイルを利用して管理するようにしてみたいと思います。

プラグインのインストール

heroku CLIにプラグインheroku-configを導入します。

heroku-config

https://github.com/xavdid/heroku-config

以下のコマンドでプラグインのインストールができます。

heroku plugins:install heroku-config

環境変数を設定する

ローカルに.envファイルを用意したら

heroku config:push

とすることで、環境変数をHerokuに反映できます。

ちなみに、デフォルトでは、すでにHeokuに設定してある環境変数名と.envファイルに書いてある環境変数名が同じだった場合、Heroku側の環境変数の値は上書きされません

なので、すでに環境変数を設定している場合でも安心です。

上書きする場合は--overwriteオプションをつけます。

環境変数をローカルにコピーする

先ほどは、.envファイルの内容を環境変数に設定しましたが、逆もできます。

heroku config:pull

とすることで、Herokuに設定してある環境変数を.envファイルとして出力することもできます。

こちらもpush同様、同じ名前の環境変数があった場合、値は上書きされません。

--overwrite

push,pullのどちらも--file=ファイル名オプションをつけることで読み込むファイル、書き出すファイルを指定することができます。