Help us understand the problem. What is going on with this article?

[Heroku] 環境変数を別のアプリへ移行する方法

More than 3 years have passed since last update.

これは、Heroku Advent Calendar 2016 18日目の小ネタになります。

やたらめったらとかんたんな小ネタになっている風ですが、これには、2つの理由があります。

  1. 大掃除が立て込んでいる
  2. Macbook買ってみたので、色々試している

ということで、主に 2.の理由により、Macbook でKobito使って、blogを投稿するの巻です。

環境変数を別のアプリでも再利用したい

仕事柄でしょうか、同じような Herokuサイトを何個も作ることがありまして。その際に、環境変数もほとんど同じようなものをコピペすることがあります。

しかし、通常ですと、Heroku Dashboard から一つ一つ手打ちで、コピペを繰り返す方法が主かと考えられます。一つや二つくらいなら諦めもしますが、そのときは10前後の環境変数がありまして、かつやたらめったら長い奇天烈な文字列がほとんどなので、コピペせざるを得ないですし、まちがえそうです。せめて、一通りの環境変数を作った上で、必要な部分のみ変更する方法が取りたい。

ということで、まるまる、別のアプリで使用している環境変数を、他のアプリでも設定する方法です。

heroku コマンドを使いましょう

heroku config コマンドを利用すると、環境変数の内容を表示したり、設定したりできます。なんだこれでかんたんじゃんと見せかけておきながら、通常の表示方法ですと、再利用できない形式で表示されます。

そこで利用するのは-sオプションです。shell で利用できるように、環境変数=変数の内容という形式で 1行ずつ吐き出してくれます。さて、複数行のときはどうするかと。コピペするにしても、複数行だとうまくいかなそうですが、1行で実はうまくいってしまいます。

heroku
$ heroku config:set `heroku config -s -a APP01` -a APP02
  • APP01 Heroku アプリケーションで定義された環境変数のすべてを、APP02 Heroku アプリケーションへ設定

heroku config:set コマンドは、入力として標準入力を容認してくれないものの、実行結果はそのまま受け入れてくれる包容力があります。そこで、heroku config -s の結果をそのまま引数とすることで、すべての環境変数を移行することができます。

心ゆくまでお試しください。

sho7650
妻x1+娘x4 オンプレインフラメインのインフラエンジニアが、ソフトウェア中心のPaaS/SaaS業界へ転身し、一度はやめたアプリケーションに手を出し始めている昨今、みなさまいかがお過ごしでしょうか。 外資系はいいぞ(
http://oshiire.to
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away