これは、Heroku Advent Calendar 2016 18日目の小ネタになります。
やたらめったらとかんたんな小ネタになっている風ですが、これには、2つの理由があります。
- 大掃除が立て込んでいる
- Macbook買ってみたので、色々試している
ということで、主に 2.の理由により、Macbook でKobito
使って、blogを投稿するの巻です。
環境変数を別のアプリでも再利用したい
仕事柄でしょうか、同じような Herokuサイトを何個も作ることがありまして。その際に、環境変数もほとんど同じようなものをコピペすることがあります。
しかし、通常ですと、Heroku Dashboard から一つ一つ手打ちで、コピペを繰り返す方法が主かと考えられます。一つや二つくらいなら諦めもしますが、そのときは10前後の環境変数がありまして、かつやたらめったら長い奇天烈な文字列がほとんどなので、コピペせざるを得ないですし、まちがえそうです。せめて、一通りの環境変数を作った上で、必要な部分のみ変更する方法が取りたい。
ということで、まるまる、別のアプリで使用している環境変数を、他のアプリでも設定する方法です。
heroku コマンドを使いましょう
heroku config
コマンドを利用すると、環境変数の内容を表示したり、設定したりできます。なんだこれでかんたんじゃんと見せかけておきながら、通常の表示方法ですと、再利用できない形式で表示されます。
そこで利用するのは-s
オプションです。shell で利用できるように、環境変数=変数の内容
という形式で 1行ずつ吐き出してくれます。さて、複数行のときはどうするかと。コピペするにしても、複数行だとうまくいかなそうですが、1行で実はうまくいってしまいます。
$ heroku config:set `heroku config -s -a APP01` -a APP02
-
APP01
Heroku アプリケーションで定義された環境変数のすべてを、APP02
Heroku アプリケーションへ設定
heroku config:set
コマンドは、入力として標準入力を容認してくれないものの、実行結果はそのまま受け入れてくれる包容力があります。そこで、heroku config -s
の結果をそのまま引数とすることで、すべての環境変数を移行することができます。
心ゆくまでお試しください。