我有一个在django上运行的网站,(但这个问题适用于任何东西,php等)
目前我正在使用unison来部署我的更改,而我(有点习惯)喜欢它,因为在此之前我手动操作!
现在,当我用git弄湿我的脚时,我开始喜欢它了!而且我在考虑是否应该使用它而不是一致地部署我的更改!
这样,如果以某种方式部署它们变成了灾难,我将能够恢复我的更改!
问题是:
git是否适合部署网站?
我应该注意的任何事情/问题/陷阱?
Jeremy Cantr.. 16
我使用git来跟踪我的网站,我像这样部署它:
git archive --format=tar --prefix="homepage/" master | gzip | ssh webserver "tar xvz -C ~/public_html"
这值得一点解释.git的archive命令将导出master分支的文件,该分支通过gzip压缩以最小化网络流量.它是通过ssh远程接收的,它被解压缩到最终的目标目录中.
我使用的部署脚本还有一些进展,但这是最重要的部分.
我使用git来跟踪我的网站,我像这样部署它:
git archive --format=tar --prefix="homepage/" master | gzip | ssh webserver "tar xvz -C ~/public_html"
这值得一点解释.git的archive命令将导出master分支的文件,该分支通过gzip压缩以最小化网络流量.它是通过ssh远程接收的,它被解压缩到最终的目标目录中.
我使用的部署脚本还有一些进展,但这是最重要的部分.
你可以看看面料,Djangonauts的青睐......
如果问题是你是否可以使用git来部署你的django应用程序,答案是肯定的!
但是,流行应用程序的生产部署可能会变得复杂 - 并且不仅仅是回滚文件.您可能需要运行数据库脚本(升级和降级脚本),重新启动cron作业或移动文件.
作为部署过程的一部分,您可能希望完整备份代码库,以便可以回滚任意数量的版本.
一种方法是使用Capistrano为您自动完成整个部署过程.您在开发环境中编写脚本并发出以下命令:cap deploy,cap deploy_with_migrations,cap rollback等.从登录一直到备份过程和运行DB脚本,一切都是自动化的.通过自动部署,您可以消除生产环境中的错误.我最近采访了一个组织,他在部署过程中意外删除了整个数据库,需要从备份中恢复所有内容.部署错误确实会破坏您的业务,因此如果您认真对待它,您希望自动执行此操作.
虽然Capistrano是一种常用于Rails的基于Ruby的部署工具,但它在自动化功能方面却是不可知的.互联网上有很多帖子讨论了使用Capistrano(google - django capistrano)部署Django应用程序的好处.
您也可以在这里查看此链接