コンバンワ、今日も相変わらずembulkのお世話になっていたプレイライフの合原です。
ちょびっと気づきがあったので、tips的な記事を。
※話をスコープしたいので、embulkで自体の説明は割愛します。
embulkでは環境変数が使える
みんな大好きバルクデータローダembulkでは、環境変数を使って、(例えば環境に応じて等)値を設定することができます。
Rails環境下でembulkを使って快適に数十万件のデータを取り込むとか読んでいただけますと雰囲気がわかるかと思います。
例えば、
export DB_HOST=127.0.0.1
export DB_NAME='db'
export DB_USER=db_user
export DB_PASSWORD="hogehoge"
とあると、これを、
#
out:
type: mysql
host: {{ env.DB_HOST }}
database: {{ env.DB_NAME }}
user: {{ env.DB_USER }}
password: {{ env.DB_PASSWORD }}
table: target_table
:
と言った具合に参照できるようになります。
環境変数に''を設定するには?
ローカル環境で開発する際など、よくDBのパスワードを''
にしているケースはあるかと思います。
export DB_PASSWORD=""
export DB_PASSWORD=''
上記の二つは、いずれも未定義状態になってしまいます。
答えは、
export DB_PASSWORD="''"
一応、確かめてみると...
$ HOGE=""
$ echo $HOGE
$ HOGE=''"
$ echo $HOGE
$ HOGE="''"
$ echo $HOGE
''
... というわけで、
password: {% if env.RAILS_ENV == 'development' %} '' {% else %}{{ env.DB_PASSWORD }}{% endif %}
というようなことをする必要はなく、
password: {{ env.DB_PASSWORD }}
で済みます。
以上。