我目前正在与集中开发服务器上的其他开发人员进行Web开发。在过去,这一点很顺利,因为我们正在进行两个单独的项目,很少发生冲突。然而,现在我们正在添加第三个(可能的)开发人员。这显然会导致其他开发人员的变化影响我的工作,反之亦然。为了解决这个问题,我认为最好的解决方案是创建一个虚拟机,在开发人员之间进行分发以供本地使用。我遇到的问题是数据库。
鉴于我们都在笔记本电脑上发展,只需保留实时数据的本地副本是非常愚蠢的。
我已经考虑过对数据进行消毒,但我无法真正弄清楚如何替换真实数据,数据可以代表人们实际输入的内容而不是一遍又一遍地重复相同的信息,例如:每个人的地址都变成了123 Testing Lane,Test Town,WA,99999等等。这真的值得关注吗?有没有工具可以帮助解决这类问题?我正在使用MySQL。理想情况下,如果我清理数据库,应该从我可以定期运行的脚本中完成。如果我这样做,我还需要一种方法来减少db本身的大小。 (我想我可以选择在x之后创建的所有记录并将它们和相应表格中的所有记录打包出来,这样做并不是什么大问题。)
我想到的第二个解决方案是加密虚拟机的硬盘驱动器,但我不确定它在速度方面的实用程度以及丢失/被盗笔记本电脑的情况。如果我这样做,vm硬盘驱动器文件本身应该加密还是应该在vm中加密? (我假设后者因为它是可移植的,并且不要求开发人员在他们选择的操作系统上具有任何加密功能。)
第三种是为我们的开发服务器上的每个开发人员创建数据库的副本,然后他们负责通过迁移脚本或者您拥有的内容使模式与规范数据库保持同步。这个解决方案似乎是最简单的,但随着更多开发人员的加入,并没有真正扩展。
你如何处理这个问题?
答案 0 :(得分:2)
使用虚假数据 - 如果必须,请投资数据生成器,但请不要在开发环境中使用真实数据,特别是如果可能会损害对它的访问权限。我对MS SQL的工具比较熟悉,但谷歌搜索“MySQL data generator”提出了EMS SqlManager和Datanamic。
答案 1 :(得分:0)
正如tvanfosson所提到的,使用虚假数据而不是实时数据。这样做不仅可以保证实时数据的安全,还可以测试不同的场景,例如国际名称等。
至于如何分发数据库,您的架构和创建脚本确实应该在源代码控制中,因此每个开发人员都可以根据需要创建数据库的本地副本。
答案 2 :(得分:0)
您可以设置灯具(种子数据)系统。您提供一次数据,并根据需要将其放入数据库中。这可以在源代码控制中进行,以便所有用户使用/更新灯具。
我认为自动发电机通常是一个坏主意。他们很难生成可能真实的信息。 Fixtures将允许您提供此信息,并知道它正是您要找的。您还可以使用fixture来推动验证器的界限。
第一次设置可能需要一些时间,但我认为您将获得更高质量的数据用于测试。
此致
贾斯汀