2016-11-18 12 views
1

私はホビープロジェクトとしてDjango開発から始めています。これまでは、開発中(すなわちpy manage.py runserver)とデプロイメント(Nginx + uWSGI)の両方で、SQLiteでうまく作業しました。今私はもっと頑強なPostgreSQLデータベースを使うことも学びたいと思います。しかし、可能であれば、私はそれをローカルにインストールすることをスキップして、PostgresをWindowsにインストールしないようにしたいと思います。SQLiteをDjangoにローカルで使用し、サーバ上でPostgresを使用

プロジェクトコードを変更せずに、組み込みサーバーとPostgresをデプロイメントで使用するたびに、Djangoを使用してSQLiteを使用することが可能かどうか疑問に思っていました。それを行う方法を見つけることができませんでした。

私は回避策を使用して、展開するたびにサーバーの設定を変更することができます。しかし、それは一種のハックです。

+1

開発マシンにPostgreSQLをインストールするだけです。これにより、本番データを取得し、問題をローカルで複製およびデバッグすることができます。 – allcaps

+0

開発/テストや生産にさまざまなスタックを使用することは悪い考えです。 Djangoはあなたのために世話をしないデータベース間には多くの違いがありますので、ローカルでは起こらないような問題にぶつかることはありません。 –

+0

@mu_is_too_short、ヘッドアップありがとう。私のテストもサーバー上で行われるので、プロダクションとほぼ同じ構成になっています。またこのプロジェクトでは、モデルはとてもシンプルなので、私はDjangoが管理したいと思っています。私は問題に注意し、できるだけ早く切り替えるでしょう。私はすでに生産のためにSQLiteを使用して、物事を同等に保つことを考えています。 – texnic

答えて

2

settings.pyを複数の設定ファイルに分割することができます。

[projectname]/ 
├── [projectname]/ 
│ ├── __init__.py 
│ ├── settings/ 
│ │ │── base.py 
│ │ │── development.py 
│ │ │── production.py 
│ ├── urls.py 
│ └── wsgi.py 
└── manage.py 

base.pyには、現在のsettings.pyのすべてのコードが含まれています。あなたのproduction.py(PostgreSQLの)あなたのdevelopment.py(sqlite3の)中とで異なるデータベースを指定し、各

from .base import * 

最終でbase.pyをインポートではなく、少なくとも、あなたはそれを使用する必要があるファイルジャンゴを伝える必要があります。開発サーバーと本番サーバー上の

export DJANGO_SETTINGS_MODULE="projectname.settings.production" 

上ごvirtualenvののあなたのpostactivateに

export DJANGO_SETTINGS_MODULE="projectname.settings.development" 

を追加します。

unset DJANGO_SETTINGS_MODULE 

を事前に無効にしてください。

その他の情報:http://www.marinamele.com/taskbuster-django-tutorial/settings-different-environments-version-control btw

1

__init__.py

import os 

app_stage = os.environ.get('DJANGO_APP_STAGE', 'dev') 
if app_stage == 'prod': 
    from .production import * 
else: 
    from .development import * 

そして、あなたは、生産のためのアプリを起動したときに最後に、必ずenv DJANGO_APP_STAGE='prod'

を設定してくださいで

settings/ 
    │── __init__.py 
    │── base.py 
    │── development.py 
    │── production.py 

settings.pyを交換するベスト・プラクティスの多くの偉大なチュートリアルそれぞれのファイルにデータベース設定を作成してください。

関連する問題