为了简化我的django应用程序到webfaction.com的部署过程,我有一个主程序(工作副本)和一个开发分支。
目前,我正在做以下工作:
显然,我错过了高效的开发培训,这是我与django合作几个月作为业余项目的记录。
有人能建议一个更有利于健全发展的django部署进程吗?
发布于 2016-05-05 22:38:19
我强烈建议使用Fabric来处理您对WebFaction:http://docs.fabfile.org/en/1.11/tutorial.html的部署。
通过使用Fabric,您可以从本地终端部署代码并执行其他服务器端操作,而无需手动将ssh发送到服务器。首先安装织物:
pip install Fabric在项目根文件夹中创建fabfile.py。下面是一个可以帮助您入门的示例fabfile:
from fabric.api import task, env, run, cd
from fabric.context_managers import prefix
env.hosts = ('wf_username@wf_username.webfactional.com',)
env.forward_agent = True
MANAGEPY = '~/webapps/my_project/code/my_project/manage.py'
PY = '~/webapps/my_project/env/bin/python2.7'
@task
def deploy():
with cd('~/webapps/my_project/code/'):
with prefix('source production'):
run('git pull --rebase origin master')
run('pip install -r requirements.txt')
run('{} {} migrate'.format(PY, MANAGEPY))
run('{} {} collectstatic --noinput'.format(PY, MANAGEPY))
run('touch my_project/my_project/wsgi.py')您可以通过以下方式从终端运行fab任务:
fab deploy在我看来,直接在服务器上修改代码是一种糟糕的做法。Fabric可以改进您的开发流程,使您只在本地进行代码编辑,快速部署并测试它们。
发布于 2016-05-05 18:55:12
最佳和最短的途径
在settings.py
try:
from production_settings import *
except ImportError as e:
pass您可以在production_settings.py;中覆盖所需的内容,它应该远离您的版本控制,并且可以灵活地使用git。
https://stackoverflow.com/questions/37058050
复制相似问题