我正在创建一个运行Apache / WSGI / Django / MySQL的小型商业Web项目 我有一个开发和生产环境,并使用git和fabric来推/拉修改。
现在,我希望能够在生产服务器之前测试具有类似条件的新版本。
答案 0 :(得分:2)
我正在处理与您描述的类似的设置,没有任何重大问题。在设置文件中可以轻松管理多个数据库,我根据根目录名称更改它们:
ROOTDIR = os.path.abspath(os.path.dirname(__file__))
if ROOTDIR.startswith("dev_"):
# -------- Developing settings ---------
DOMAIN_NAME = 'dev.foo.com'
DATABASES = {
'default':{
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'development_db',
'USER': 'xxxx',
'PASSWORD': 'xxxxx',
'HOST': 'localhost',
'PORT': '',
'OPTIONS': {'autocommit': True,}
}
}
elif ROOTDIR.startswith("production_"):
# --------- Production settings --------
DEBUG = False
DOMAIN_NAME = 'production.foo.com'
TEMPLATE_DEBUG = DEBUG
DATABASES = {
'default':{
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'production_db',
'USER': 'xxx',
'PASSWORD': 'xxx',
'HOST': 'localhost',
'PORT': '',
'OPTIONS': {'autocommit': True,}
}
}
else:
# ....
答案 1 :(得分:1)
您可以做的是设置服务器,以便每个站点都运行在自己的virtualenv http://pypi.python.org/pypi/virtualenv中,这可以与apache和wsgi一起使用。
请参见此处http://www.foxhop.net/django-virtualenv-apache-mod_wsgi(但这与mod_wsgi有关)
通过这种方式,您可以完全控制每个virtualenv
中安装的软件包