私はHerokuで開発中で、config
変数を使用して、機密変数やその他の環境変数を格納しています。ローカルで開発している間に、これらの変数を.env
ファイルに反映させました。django、herokuでローカルマイグレーション中に環境変数が利用できない
私が今見つけたのは、移行中に.env
ファイルの変数が読み込まれないということです。彼らはheroku local
でローカルWebサーバーを実行している間にロードされますが、マイグレーションのためにロードされません。これは、sqliteのデフォルトDBが設定ファイルに "ハードコードされていた"ため、私のローカルアプリケーションがデフォルトのsqlite3データベースを使用している間は問題ありませんでした。しかし、最近私は自分のローカルPostgresql DBをローカルの開発者に使いたいと思っています。 OKだから.env
ファイルにDATABASE_URL
変数を追加しました。
ローカルアプリをDBに移行することができません。私は.env
ファイルの内容が移行のためのos.environ
マッピングに追加されていないため、これが原因であることがわかりました。テストするには
、私は.env
ファイルにテスト変数を追加しました:私はpython manage.py migrate
を試してみました
import os
import dj_database_url
if "TEST" not in os.environ:
raise Exception("No .env vars found.")
:
ファイル「/ユーザ/
settings.py
で次にTEST="teeeest"
apple/heroku/b/b/settings.py "、行16、 に例外が発生しました(" No .env varsが見つかりませんでした。 )例外:.envvarsは見つかりませんでした。
しかし、私はheroku local
を実行することができ、エラーはありません。また、heroku local
の間に.env
変数が利用可能であることを確認するために、さらにテストを行っています。
さまざまな理由から、.env
ファイルにローカルDB接続文字列を設定したいが、現時点では可能ではないようだ。これはherokuのdjangoの正しい動作ですか? .env
ファイル変数は、サーバーを実行しているときにのみアクセスでき、移行用ではありません。
私は実際にちょうどHerokuのは、ローカル '>長いweekend-後にそれを考え出しました。 https://devcenter.heroku.com/articles/heroku-local#run-your-app-locally-using-the-heroku-local-command-line-tool-run-a-one-off-command-locally –