2017-01-19 9 views
0

Djangoプロジェクトを配備するためのローカル設定からプロダクション設定への切り替えを理解できません。私はUbuntu仮想マシン(VM)を使用しています。Djangoのプロダクション設定の実装

設定の設定方法を理解しています。私は設定ファイル(base.py、local.py、production.py、blah、blah)を作成するためのベストプラクティスを理解しています。私はローカル開発ではDEBUG = Trueであることを知っています。DEBUG = False、blah、blahです。

しかし、この移行を導入にどのように実装すればよいですか?私はlocal.pyを取り除きますか?私のVMがbase.pyとproduction.pyだけを読み込むようなロジックを作成していますか?

どのような方法が最適ですか?

+0

複数の設定ファイルを避け、[django-environ](https://github.com/joke2k/django-environ)を使用して、環境変数としての変更設定を処理することをお勧めします。 [12-factor-app](https://12factor.net) –

+0

を確認してください。返事はありがとうございました。あなたのお勧めは本当に魅力的です。しかし、私は、生産(テストアプリ、ドキュメントジェネレータなど)で必要としないもののための要件とアプリケーションを持っています。より洗練されたソリューションが見つかるまでは、settings.local.pyをバージョン管理から外し、常にプロダクション用のgitリポジトリからデプロイします。世話をする。 –

答えて

0

私は最善のアプローチについてはよく分からないが、私は作品の何をすべきか...私のsettings.pyの麓

は、私が持っている:

try: 
    from local_settings import * 
except ImportError, e: 
    pass 

私はすべての私の地元の発展を保ちますプロダクション設定をオーバーライドするlocal_settings.pyの設定。 local_settings.pyファイルをアップロードしないようにします。

0

あなたができることは、現在どの環境が使用されているかを確認することです。 これを行うには、開発環境と本番環境で異なる値を持つ環境変数をシステム上に設定します。あなたは

sudo -H gedit /etc/environment 

することにより、これらの環境変数を設定し、ファイルに次の行を追加することができます

:この変更を利用できるようにする

DEBUG="true" 

を(あなたはログアウトして再度ログインする必要がありますプロダクション環境で

の場合、DEBUG = "false"と設定します。
その後、あなたのsettings.pyでこれを行うことができます。

DEBUG = os.environ.get('DEBUG', 'true') != 'false' 

をして、あなたはこのように使用される環境によって異なるだろう、すべての設定を設定することができます。

if DEBUG: 
    STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage' 
else: 
    STATICFILES_STORAGE = STATICFILES_STORAGE = 'custom_storages.StaticStorage' 

(上記の設定は、開発環境にある場合はローカルdjangoサーバを使用し、production_storagesモジュールで定義されている場合はamazon s3をbotoとします。

あなたの更新をプッシュし、常に適切な設定は環境に応じて選択する必要があります。

関連する問題