2010-03-08 92 views
5

我正在为我的初创阶段设置开发环境(PHP/MySQL)。我们用三组服务器:建立一个高效率和高效的开发流程

LIVE - 这提供实际应用 测试服务器 - 提供一个测试版本,它实际上是释放 DEV之前 - 在开发服务器

开发服务器与每个开发人员运行SVN检查他们的本地副本。在每天结束时,我们会检查完成的修复程序,然后使用Hudson将我们的构建过程自动化,然后将其转移到TEST。然后,我们使用测试仪检查应用程序是否仍然正常工作,如果一切正常,请将其移至LIVE。我很高兴在这个过程中,但我有两个问题:

  • 你会如何建议我们做局部测试 - 因为每个开发人员添加新的页面或改变功能我希望他们能够测试自己在做什么。你只需要设置本地Apache和本地数据库,并让它们在本地机器上进行本地测试?

  • 您会如何建议处理数据层更改?

  • 有没有其他建议可以让我们的开发过程尽可能简单高效?

在此先感谢

回答

3

+1到每个开发经营自己的设置,完整的Apache和数据库。

保持数据库模式在版本控制下。

可能你可以在一个测试数据库中保存(也许在一个单独的版本库中)一小部分但具有代表性的数据。每天早上你检查这个测试数据库的最新副本,并开始黑客攻击。当您更改模式时,请相应地更新您的测试数据存储库。

+0

如何在版本控制中保留数据库模式?听起来像一个非常好的主意 - 我以前没有看过它。 – christophmccann 2010-03-08 11:33:05

+0

我写了一篇关于它的文章:http://www.gsdesign.ro/blog/mysql-database-versioning-strategy/,你也可以在这里阅读更多:http://stackoverflow.com/questions/1607/mechanisms-用于追踪-DB-架构的变化 – 2010-03-08 11:41:07

0

任何做发展的人都应该有自己的本地环境。我使用Mac,所以我运行MAMP,这样我就可以拥有自己的LAMP环境,并且独立于任何其他环境。这也可以让我知道,没有其他人正在改变/工作在同一个组件上,并消除了任何可能的混淆。如果你是一个windows用户,也可以很容易地安装LAMP栈的本地版本,如XAMP等。如果你将Linux作为你的桌面运行,你很可能已经知道如何安装LAMP以适应Linux的风格正在跑步。

数据库模式版本是一个好主意。这也是我们使用的。除了版本控制下的模式之外,我们还将模式版本表添加到模式并更新,以便在需要比较时快速确定生产/ qa/dev中的版本。

至于数据层的变化,我会推荐两件事情。

  1. 始终创建您的迁移路径,前进和后退。这意味着,如果您有想要投入生产的模式来升级现有模式,则应始终将其作为发布的一部分。一个清晰简洁的过程,用于修改表格。同样的道理,你需要有一个工作和测试的ROLLBACK版本以防出现问题。

  2. 我发现有帮助的是使用生产备份加载到本地(或QA/DEV),以便我可以在不影响生产的情况下使用最新的数据/模式。如果您不执行定期生产备份,现在可能是实施策略的好时机。然后你会用一块石头杀死两只鸟。您将拥有备份任何中断和有用的实时模式,您可以加载数据以在另一台计算机上进行测试。由于数据将与生产相匹配,因此这也会引发模式更改的任何可能的问题。所以如果它在本地(以及DEV/QA)工作,它可以降低生产中出现问题的风险。