Django 1.8中的生产和开发数据库

时间:2015-10-16 15:52:23

标签: django

如何在Django 1.8中分离生产和开发数据库?

现在我正在以天真的方式使用相同的数据库进行开发和生产。部署时,将通过生产(SQLite)复制开发人员数据库。

在Django 1.8中执行此操作的正确方法是什么?此外,如何在不丢失以前数据的情况下更新生产表?

2 个答案:

答案 0 :(得分:2)

好吧,首先,我真的建议你不要在生产中使用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')

答案 1 :(得分:1)

<强>更新

Marina Mele撰写了一篇关于dual environment setup&#34;事情&#34;的完整文章。

在我的设置中,我有2个或3个不同的virtualenvs

我还有一个主settings.py,其中包含基本参数和不同的设置,这些参数从main继承而且适合每个virtualenv。

这个想法被描述为herehere

在我的.virtualenvs/bin/activate文件中,我将路径附加到相关设置文件:

DJANGO_SETTINGS_MODULE=air.settings.settingst
export DJANGO_SETTINGS_MODULE

这样,我为同一个项目的每个环境都有一个单独的数据库。