English 中文(简体)
我应该使用 git 来部署网站吗?[已关闭]
原标题:
  • 时间:2009-03-14 04:22:46
  •  标签:
Closed. This question is opinion-based. It is not currently accepting answers.

想要改进这个问题吗?通过编辑这篇文章更新问题,以便可以用事实和引文回答。

Closed 3 years ago.

我有一个运行在Django上的网站,(但这个问题适用于任何东西,PHP等)

目前我正在使用 unison 来部署我的更改,我(有点习惯于)喜欢它,因为在这之前我是手动执行的!

现在,由于我正在学习git,我开始喜欢它了!而且我在思考,也许我应该使用它来部署我的更改,而不是使用unison!

这样我就有额外的好处,如果部署它们后出现灾难,我就可以回滚我的更改!

问题是:

  • git适用于部署网站吗?

  • 有任何事情/问题/需要注意的地方吗?

最佳回答

我用Git来追踪我的网站,并将其部署如下:

git archive --format=tar --prefix="homepage/" master | gzip | ssh webserver "tar xvz -C ~/public_html"

这需要一些解释。Git的档案命令将导出主分支的文件,压缩为gzip以最小化网络流量。它通过SSH远程接收,解压缩到最终目标目录中。

我使用的部署脚本有一些其他的功能,但这是最重要的部分。

问题回答

你可以查看在Djangonauts中很受欢迎的Fabric

如果问题是你能否使用git部署你的Django应用程序,答案是肯定的!

然而,一个受欢迎应用的生产部署可以变得非常复杂 - 并且远远不止于简单地回滚文件。您可能需要运行数据库脚本(包括升级和降级脚本)、重新启动定时任务或移动文件。

作为您的部署过程的一部分,您可能希望完整备份您的代码库,以便您可以回滚任意数量的版本。

一种方法是使用Capistrano自动化整个部署过程。您可以在开发环境中编写脚本并发出命令,如:cap deploy,cap deploy_with_migrations,cap rollback,等等。从登录到备份流程和运行DB脚本都自动化了。通过自动化部署,您可以消除生产环境中的错误。我最近与一个组织交谈,他们在部署过程中不小心删除了整个数据库,需要从备份中恢复一切。部署错误可能会真正破坏您的业务,因此如果您认真对待它,就要自动化此过程。

尽管Capistrano是一个基于Ruby的部署工具,通常与Rails一起使用,但它在自动化能力方面是不可知的。网络上有很多帖子讨论使用Capistrano部署Django应用程序的好处(谷歌- django capistrano)。

你也可以查看这个链接:点击这里

好的,我使用SVN来部署我的网站,所以我建议你试试!要记住的是,每次更新网站的代码时,你可能需要重新启动或重新加载服务器(我不确定Django或者你使用的其他内容管理系统是否能够解决这个问题)。





相关问题
热门标签