我原来是.NET开发人员,当我们不得不从Visual Studio发布软件时,我们不得不将其切换到发布模式,以确保删除调试挂钩并保留存储库文件。最终结果是一组准备好投入生产的文件。
切换到Django并使用它近三个月后,我现在准备部署第一个应用程序了。我已经做了很多阅读。我知道如何将debug设置为False并拥有production_setting.py以及如何在Apache上使用WSGI进行部署。
但是我仍然没有想到的是推出一个版本的好方法。
根据我现在所知,我会为发布做以下事情:
这是Django部署的健康过程吗? :)
仅供参考我使用的是Aptana Studio 3.2.1
感谢您提供任何提示
答案 0 :(得分:2)
您可以查看Fabric;文档将其描述为
...一个Python(2.5或更高版本)库和命令行工具,用于简化SSH在应用程序部署或系统管理任务中的使用。
它能够做你想要的所有事情。
您的“部署”任务可能包含多个子任务(_upload_tar_from_hg()
,_migrate()
等。),但总体情况如下:
from fabric.api import *
env.release_name = 'foo_bar-1.0'
env.deployment_path = '/var/www/django/%s' % env.release_name
def deploy():
local('hg archive -t tgz $s.tar.gz' % env.release)
put('%s.tar.gz' % env.release, env.deployment_dir)
run('cd %s && tar -xzvf %s.tar.gz' % (env.deployment_path, env.release))
local('rm %s.tar.gz' % env.release)
run('cd %s/%s && ln -s settings_production.py settings.py' % (env.deployment_path, env.release))
这取决于在源代码管理中使用单独的settings_production.py
,这可能不合适。 Fabric可以在文本文件中查找和替换,也可以使用a local_settings.py
approach组合设置。
查看the Fabric tutorial以填补空白(例如指定服务器的连接详细信息。一旦设置完成,只需运行
fab deploy
并且该过程应自动进行。
NB 使用hg
命令在一步中完成从Mercurial创建没有hg archive
元数据的存档
答案 1 :(得分:1)
在目标服务器上设置remote Mercurial repo。使用带有“hg”用户的SSH密钥通常是最安全的方式,因为您可以限制对该用户的shell访问,并且只允许它访问该存储库。
推送到该回购并使用post-receive挂钩检查您的推送到您的Web服务器将提供的文件夹(并在需要时重新加载您的Web服务器)。
您还可以在设置文件中添加一个条件,检查应用程序是否在生产服务器上(例如检查文件或环境变量)并加载相关设置(settings_prod.py或settings_dev.py)