我正在为我的初创公司设置开发环境(PHP / MySQL)。我们使用三组服务器:
LIVE - 提供实际应用程序的服务器 测试 - 在实际发布之前提供测试版本 DEV - 开发服务器
开发服务器运行SVN,每个开发人员都签出他们的本地副本。在每天结束时检查完成的修复,然后我们使用Hudson自动化我们的构建过程,然后将其转移到TEST。然后,我们使用测试仪检查应用程序是否仍能正常运行,然后如果一切正常,请将其移至LIVE。我很满意这个过程,但我有两个问题:
您如何建议我们进行本地测试 - 因为每个开发人员都添加新页面或更改功能,我希望他们能够测试他们正在做什么。您是否只需设置本地Apache和本地数据库,并让它们在自己的机器上进行本地测试?
您如何建议处理数据层更改?
您是否还有其他建议让我们的开发过程尽可能简单有效?
提前致谢
答案 0 :(得分:3)
+1,完成Apache和数据库。
将数据库架构保持在版本控制之下。
可能您可以在测试数据库中保留(可能在单独的存储库中)一小组但有代表性的数据。每天早上你查看这个测试数据库的最新副本,并开始黑客攻击。更改模式时,请相应地更新测试数据存储库。
答案 1 :(得分:0)
任何进行开发的人都应该拥有自己的本地环境。我使用Mac,所以我运行MAMP,以便我可以拥有自己的LAMP环境本地并且独立于任何其他环境。这也将让我知道没有其他人在改变/处理我所使用的相同组件并消除任何可能的混淆。如果您是Windows用户,也可以轻松安装LAMP堆栈的本地版本,如XAMP等。如果您将Linux作为桌面运行,您很可能已经知道如何安装LAMP以实现Linux的风格正在运行。
数据库架构版本是一个好主意。这也是我们使用的。除了版本控制下的模式之外,我们还将模式版本表添加到模式中并保持更新,以便我们可以在需要比较时快速告知生产/ qa / dev中的版本。
至于数据层的变化,我建议有两件事。
始终向前和向后创建迁移路径。这意味着当您拥有要生产的模式以升级现有模式时,应始终将其作为发布的一部分。一个清晰简洁的过程来改变表格。出于同样的原因,你需要有一个工作和测试的ROLLBACK版本,以防出现问题。
我发现有用的是使用生产备份加载到我的本地(或QA / DEV),以便我可以使用最新的数据/架构而不影响生产。如果您没有定期执行生产备份,那么现在可能是实施策略的好时机。然后你将一石二鸟。您将拥有任何中断的备份和有用的实时模式,其中包含可以加载以在另一台计算机上进行测试的数据。这也将有助于提出架构更改可能出现的任何问题,因为数据将匹配生产。因此,如果它在本地(以及DEV / QA)上运行,它可以降低生产中出现问题的风险。