7

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

您对问题的解决方案是什么?

4

5 回答 5

1

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

于 2008-09-01T13:04:34.740 回答
1

或者Fabric,如果你更喜欢 Python。

于 2008-10-08T18:47:33.230 回答
1

capistrano有什么重量级的?如果你想同步文件,那么确保 rsync 很棒。但是,如果您需要进行数据库更新,那么上限可能还不错?

于 2008-11-29T08:16:28.087 回答
0

@安德鲁

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

我知道这有点含糊,但是一旦我切换到 rsync,我实际上删除了服务器端的 .git 文件夹,所以我没有用来让魔法发生的确切脚本。不过,这可能是一个完整问题的良好候选者,因此您可能会以这种方式获得更多回复。

编辑:我知道已经有一段时间了,但我最终找到了我再次使用的东西:

使用 Git 推送部署项目

于 2008-09-01T15:43:15.483 回答
0

我假设您说的是 Ruby on Rails。

查看 HowTo 维基:

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

于 2008-10-03T19:29:38.280 回答