2011-12-15 53 views
0

我想承担一个项目,但我不知道如何处理更新过程。用活跃会员注册更新网站

通常,当要求更新站点时,备份数据库&站点文件,然后在本地或在开发服务器上进行更新。然后,当更新完成后,您将它们推送到现场。

我的问题是,我将努力每天注册新成员,每天发布博客帖子,并每天在这些帖子上获取新评论。如果我要在星期一关闭网站,请在测试环境中更新网站,然后在星期五实时更新这些更改,则会覆盖本周写入的每位成员以及写入的博客条目。

那么最好的方法是什么?如何在不丢失开发过程中在现场网站上获得的数据的情况下更新/添加网站功能?毫无疑问,这一定是可能的,因为像TechCrunch和Gizmodo这样的高流量网站会一直进行大规模的网站更新,而不会丢失数据。

回答

4

这取决于您所做的更改。它是文件/模板更改还是数据库更改?

如果只是文件更改,只需将文件和数据库提交到本地服务器,对文件进行更改,然后仅在完成时将它们(仅限文件)推送到实时服务器。只要没有发生数据库更改,那就行得通了。

如果有数据库更改,事情会变得有点棘手。你基本上会遵循相同的过程,但记下你在本地站点上做出的任何数据库更改。当所有事情都准备好推送到实时服务器时,除了在更新时让用户离线用户网站,您别无选择。

然后,您会将所有更新的文件推送到活服务器,并镜像您在本地服务器上执行的任何数据库更改(安装/更新插件等)。当所有这些都完成并测试完毕后,您可以再次将该站点联机。如果你已经对数据库变更做了很好的记录,停机时间应该是最小的。

这取决于能够阻止对用户的访问,但仍允许自己访问,但这对大多数CMS来说都是标准的。另外,如果你不知道你应该看看把git整合到你的工作流中。如果您所做的更改花费相当长的时间,则需要一个系统,您可以将代码分发到新版本中,同时仍保持活动服务器上原始代码的状态。

这样,如果在本地开发新功能的过程中出现需要对现场进行修复的紧急修复,则可以切换回主/原分支,并更改不会“包括你在另一个分支上工作的新东西。

0

嗯,我只为小流量的wordpress/drupal网站做过这个,但没有“live”版本对我来说不是问题。我有我的开发副本,测试我想要的更改,然后通过FTP将他们备份,将这些更改发送到实时站点。

你打算编辑这些注册吗?或者你只是在调整静态文件?

在wordpress的情况下,我测试一个插件,然后将其安装到实时网站上。 通常我所做的更改涉及插件/模块和一些PHP的东西。这显然不是最细微的解决方案,我很想看看更有知识的人想到什么。