我想承担一个项目,但我不确定如何处理更新过程。
通常,当被要求更新站点时,您会备份数据库和站点文件,然后在本地或开发服务器上进行更新。然后,当更新完成后,您可以将它们实时推送。
我的问题是,我将要工作的网站每天都会注册新的会员,每天都会发布博客,每天都会有新的评论。如果我在周一拉出网站,在测试环境中更新它,然后在周五推送这些更改,那么在一周内注册的每个成员和写的博客条目都会被覆盖。
那么,做这件事的最佳方式是什么呢?如何在不丢失开发过程中实时站点上获得的数据的情况下更新/添加站点的功能?当然,这肯定是可能的,因为像TechCrunch和Gizmodo这样的高流量网站总是在不丢失数据的情况下进行大规模的全站更新。
发布于 2012-08-17 18:52:28
这取决于您所做的更改。是文件/模板更改还是数据库更改?
如果只是文件更改,只需将文件和数据库拉到您的本地服务器,对文件进行更改,然后在完成后将它们(仅限文件)推送到实时服务器。只要没有发生数据库更改,它就会工作。
如果有db的变化,事情就会变得有点棘手。您基本上会遵循相同的过程,但请记下您在本地站点上所做的任何db更改。当一切都准备好推送到实时服务器时,您别无选择,只能在更新时让用户离线站点。
然后,您可以将所有更新的文件推送到实时服务器,并镜像您在本地服务器上所做的任何db更改(安装/更新插件等)。当所有这些都完成并经过测试后,您就可以将该站点重新上线了。如果您对数据库更改做了很好的记录,那么停机时间应该是最短的。
这取决于是否能够阻止用户访问,但仍然允许您自己访问,但这是大多数CMS的标准。
另外,如果你还没有,你应该考虑将git集成到你的工作流程中。如果您所做的更改需要相当长的时间,那么您将需要一个适当的系统,在这个系统中,您可以将代码分支到新的版本中,同时仍然保持实时服务器上的代码的原始状态。
这样,当你正在本地开发新功能时,如果有一个紧急修复需要对活动站点进行修复,你可以切换回你的主/原始分支,并对不包括你在另一个分支上工作的任何新东西的代码进行更改。
发布于 2011-12-15 23:42:19
好吧,我只为小流量的wordpress/drupal站点做过这个,但是没有一个"live“版本对我来说不是问题。我有我的开发副本,测试我想要的更改,然后通过FTPing‘back up将这些更改动态地推出到实时站点。
您要编辑这些注册吗?或者你只是在调整静态文件?
在使用wordpress的情况下,我测试了一个插件,然后将其安装在活动站点上。通常,我所做的更改涉及到插件/模块和一些PHP内容。这显然不是最细致入微的解决方案,我很有兴趣看看更有见识的人会有什么想法。
https://stackoverflow.com/questions/8522496
复制相似问题