Django 1.8中如何分離生產和開發數據庫?Django 1.8生產和開發數據庫1.8
現在我正在使用相同的數據庫爲開發和生產的天真的方式。部署時,開發數據庫將被複制到生產環境(SQLite)。
在Django 1.8中做這件事的正確方法是什麼?另外,如何更新生產表而不丟失先前的數據?
Django 1.8中如何分離生產和開發數據庫?Django 1.8生產和開發數據庫1.8
現在我正在使用相同的數據庫爲開發和生產的天真的方式。部署時,開發數據庫將被複制到生產環境(SQLite)。
在Django 1.8中做這件事的正確方法是什麼?另外,如何更新生產表而不丟失先前的數據?
那麼,首先,我真的建議你不要在生產中使用sqlite。如果你堅持,我會做的是在項目結構之外複製sqlite文件,並使用其他設置文件僅用於實況,如settings_live.py
並用正確的路徑覆蓋DATABASES
設置:
from myproject.settings import *
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': ..., # the correct path file name here
}
}
確保您在生產環境中指定了正確的設置文件。例如,對於WSGI:
os.environ.setdefault('DJANGO_SETTINGS_MODULE', wsgi_app + '.settings_live')
更新
濱海邁樂已經寫在dual environment setup 「東西」 徹底的文章。
在我的設置中,我有2個或3個不同的virtualenvs。
我也有一個主要的settings.py
與基本參數和不同的設置,從主繼承和迎合每個virtualenv。
在我.virtualenvs/bin/activate
文件I路徑追加到相關的設置文件:
DJANGO_SETTINGS_MODULE=air.settings.settingst
export DJANGO_SETTINGS_MODULE
這樣一來,我有同一項目的每個環境一個單獨的數據庫。