2011-01-12 22 views
2

我想创建一个开发环境,使用我的中央资料库托管在某处,比如bitbucket/github。然后在我的开发服务器和我的生产服务器上,我将拥有克隆。DVCS,数据库和用户生成的内容?

我将开发新功能并在开发服务器上进行本地提交。一旦这个阶段可以推到生产阶段,我将从开发克隆推到中央仓库,然后从中央仓库回到生产服务器。

这一切都有道理,但有2个部分我无法弄清楚。

如何保持数据库和用户生成的内容(文件上载等)同步?

另外,当我在生产服务器上执行下一次pull +更新时,用户生成的内容是否会被清除?

其他人如何解决这个问题?

附加信息: 这将是一个MySQL/PHP网站。我也计划使用mvc框架(可能是蛋糕),我还没有确定要使用哪个DVCS,但到目前为止,Mercurial就是我的想法。不知道这个信息是否重要,但加入以防万一。

回答

2

这就是为什么DVCS并不总是发布管理正确的工具:一旦你的代码是对服务器的远程回购,你应该有另一个“rsync的”机制:

  • 提取权标签(要投入的产品)
  • 转换/复制正确的文件
  • 保留其他一组文件/数据库。