[Heroku] .envファイルで環境変数を設定・管理する
通常、herokuで環境変数を設定管理するには、webのdashboard
を利用するかheroku CLI
のconfig
コマンドを利用します。
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=ファイル名
オプションをつけることで読み込むファイル、書き出すファイルを指定することができます。