我正在创建一个运行Apache/WSGI/Django/MySQL的小型商业Web项目。
我有一个开发和生产环境,并使用git和结构来推/拉修改。Web应用程序部署 - 混帐环境
现在,我希望能够在生产服务器之前测试具有与生产服务器类似条件的新版本。
- 我想使用不同的URL和不同的存储库使用相同的物理服务器(这是好吗?)。
- 是否有最佳实践来设置这个产前环境尽可能接近产品?
- 我应该使用相同的Web服务器和数据库服务器吗?在这种情况下,我该如何管理数据库名称?
我正在创建一个运行Apache/WSGI/Django/MySQL的小型商业Web项目。
我有一个开发和生产环境,并使用git和结构来推/拉修改。Web应用程序部署 - 混帐环境
现在,我希望能够在生产服务器之前测试具有与生产服务器类似条件的新版本。
我对类似的设置工作,你没有描述一个包的完整控制研究主要问题。多个数据库很容易在设置文件中管理,我根据根目录名称更改它们:
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:
# ....
你可以做的是建立服务器,使每个站点运行在它自己的virtualenv http://pypi.python.org/pypi/virtualenv这可以与apache和wsgi一起工作。
看到这里例如http://www.foxhop.net/django-virtualenv-apache-mod_wsgi(这是但mod_wsgi的)
这种方式,您有安装在每个virtualenv中
不是一个坏主意。我已经为开发者做了这件事。我要去尝试我的测试服务器。 – 2012-03-29 13:24:51
工作正常,我做了类似'DATABASES ['default'] ['NAME'] ='test_db'' – 2012-04-02 06:51:08