我们如何在服务器上更新Web应用程序?

时间:2020-03-05 18:45:58  来源:igfitidea点击:

我知道Capistrano,但对我来说太重了。我个人设置了两个Mercurial存储库,一个在生产服务器上,另一个在本地开发计算机上。通常,当新功能就绪时,我会将更改从本地计算机上的存储库推送到服务器上的存储库,然后在服务器上进行更新。这是使文件在多台计算机上保持同步的非常简单快捷的方法,但无助于更新数据库。

我们如何解决该问题?

解决方案

回答

我曾经使用git push发布到我的Web服务器,但是最近我一直在使用rsync。我试图让我的网站对它在哪里运行(无论是使用相对路径等)还是不可知的,到目前为止,它已经很好地运行了。唯一的挑战是保持数据库同步,为此,我通常将生产数据库用作主数据库,并进行定期备份并将其导入到我的测试数据库中。

回答

@安德鲁

要使用git push部署站点,我们首先需要在.git / config文件中设置要推送到的远程服务器。然后,我们需要配置一个钩子,该钩子将基本上执行git reset-很难将我们刚刚复制到存储库中的代码复制到工作目录中。

我知道这有点含糊,但是一旦切换到rsync,我实际上删除了服务器端.git文件夹,因此我没有用来实现魔术的确切脚本。不过,这可能是一个完整问题的理想人选,因此我们可能会以这种方式获得更多答复。

编辑:我知道已经有一段时间了,但是我最终发现我再次使用了什么:

使用Git push部署项目

回答

我假设我们正在谈论Ruby on Rails。

查看HowTo Wiki:

http://wiki.rubyonrails.com/rails/pages/Howtos#deployment

回答

如果我们喜欢Python,也可以选择Fabric。

回答

Capistrano的重量级元素是什么?如果要同步文件,请确保rsync很棒。但是如果我们接下来需要进行数据库更新,那么cap可能还不错吗?