我有一个PHP项目,我目前正在开发。
我快完成了,我想知道在测试测试和将更新/更改部署到生产站点时,最佳实践是什么?
例如,为了测试新特性,我考虑创建一个名为beta.mysite.com的子域,它使用与生产版本相同的项目文件的复制和mysql的复制。
然后,在测试完所有内容之后,我需要导出mysql表(如果我更改了db结构),并将文件复制到生产区域。
但是,我如何保持测试过程中产生的所有数据呢?
我是唯一一个在这个项目上工作的人,我目前不使用任何版本控制工具,只使用Dreamweaver。
谢谢,
发布于 2011-03-28 18:08:27
我强烈建议您自己实现VCS。即使您是唯一的开发人员,它也是一个很好的工具。您将能够更容易地部署代码,立即撤消错误,并跟踪代码更改的演变过程。为此,我发现汞是一个很好的工具,考虑到它的快速设置和总体简单性,但是可以随意使用您喜欢的任何东西(git、SVN等等)。
只要使用VCS进行部署,您就可以在代码库中为各种版本创建标记,并同时处理多个版本( 2.0的beta版、3.0版的dev等)。然后,从Beta2.0中部署代码就变成了运行一个命令的问题。
对于数据库同步,我发现DB部署非常有助于将我的数据库更新到当前代码库所需的最新版本。这对于将测试环境的数据库更新到适当的配置也很有用。使用此工具,您可以使用单个命令进行所需的所有更改。
发布于 2011-03-28 15:40:37
如果我理解您的问题,听起来您需要创建一个脚本来修改生产区域中现有的SQL表,而不是简单地替换它们。看看MySQL变换表语法。(如果我误解了你的问题,请澄清。)
此外,我认为最好让您的开发区域位于单独的机器上,也许在本地VM上。
发布于 2011-03-28 17:38:16
如前所述,您确实需要查看更改脚本。如果没有太多的更改,您可以手动修改活动站点上的表。但是接下来,如果需要对数据进行操作以适应新的表,那么通常可以编写一个快速的php程序,该程序可以在表中循环以进行所有更改。(同样,如果数据的大小不是很大,在某些情况下,您可能能够更快地手动进行这些更改,否则,这就是我推荐的方法。)
此外,当我说您最初在同一台服务器上拥有子域的想法是您进行测试的最佳选择时,我可以从经验中说明这一点。否则,您可能会有不同的配置,这些配置在部署时确实会引起重大麻烦。在某些开发中,您不能总是这样做,但如果可以的话,我强烈建议您这样做。除此之外,您应该根据您的部署需要进行设置。
https://softwareengineering.stackexchange.com/questions/62852
复制相似问题