我目前正在与另一位开发人员在一个集中开发服务器上进行web开发。在过去,这是很好的,因为我们有两个独立的项目,我们正在工作,很少有冲突。然而,现在我们正在向混合中添加第三个(可能的)开发人员。这显然会造成其他开发人员更改影响我的工作的问题,反之亦然。要解决这个问题,我认为最好的解决方案是创建一个虚拟机,在开发人员之间分发,供本地使用。我遇到的问题是当涉及到数据库时。
考虑到我们都是在笔记本电脑上开发的,简单地保留实时数据的本地副本是愚蠢的。
我已经考虑过清理数据,但我真的不知道如何用代表人们实际输入的数据来替换真实的数据,而不是一遍又一遍地重复相同的信息,例如每个人的地址变成123测试车道,测试城镇,华盛顿州,99999或其他什么。这真的值得关注吗?有没有工具可以帮助你解决这类问题?我使用的是MySQL。理想情况下,如果我清理了数据库,应该从我可以定期运行的脚本中完成。如果我这样做,我还需要一种方法来减小数据库本身的大小。(我认为我可以选择在x之后创建的所有记录,并删除它们和相应表中的所有记录,因此这并不是什么大问题。)
我想到的第二个解决方案是加密虚拟机的硬盘,但我不确定这在速度方面是否实用,以及在笔记本丢失/被盗的情况下。如果我这样做,虚拟机硬盘文件本身是应该加密的,还是应该在虚拟机中加密?(我假设是后者,因为它是可移植的,并且不要求开发人员在他们选择的操作系统上具有任何类型的加密功能。)
第三种方法是在我们的开发服务器上为每个开发人员创建一个数据库副本,然后他们负责通过迁移脚本或其他方式使模式与规范数据库保持同步。这个解决方案似乎是最简单的,但随着更多开发人员的加入,它并不能真正扩展。
你如何处理这个问题?
发布于 2010-06-08 02:00:45
使用假数据--如果有必要,请投资于数据生成器,但请不要在开发环境中使用真实数据,特别是如果可能会危及对它的访问。我对MS的工具比较熟悉,但是在谷歌上搜索"MySQL data generator“会出现EMS SqlManager和Datanamic。
发布于 2010-06-08 02:13:46
正如tvanfosson提到的,使用假数据而不是实时数据。这样做不仅可以保证实时数据的安全,还可以让您测试不同的场景,例如国际名称等。
至于如何分发您的数据库,您的模式和创建脚本实际上应该在源代码控制中,这样每个开发人员就可以在他们认为合适的时候创建数据库的本地副本。
发布于 2010-06-08 03:18:16
您可以设置一个装置(种子数据)系统。您只需提供一次数据,它就会根据需要多次放入数据库中。它可以保存在源代码控制中,这样所有用户都可以使用/更新fixture。
我认为自动生成器通常不是一个好主意。他们很难生成可能是真实的信息。Fixture将允许您创建此信息,并知道它就是您正在寻找的信息。您还可以通过使用fixture来扩展验证器的范围。
第一次设置可能需要一些时间,但我认为您将获得更高质量的用于测试的数据。
致以敬意,
贾斯汀
https://stackoverflow.com/questions/2991854
复制相似问题