我目前正在从事一个 Web 项目,在该项目中我们都连接到一个开发数据库。
和其他集中式系统一样,这个数据库最终会成为单点故障。
如果其中一位开发人员不小心将一些脏数据转储到数据库中,所有其他开发人员都会受到影响。
所以我认为也许我们应该做点什么,比如说,我们每个人都制作一份原始数据库的副本,然后我们设置我们的 Web 应用程序以连接到本地数据库。
就我而言,团队的核心成员是五名开发人员和一名测试人员(主要是黑盒测试)。开发过程是这样进行的:每个开发人员负责一个子功能并在他自己的分支上工作,然后我们将他的分支合并到一个主干上,测试人员在主干上测试应用程序。
请给我一些建议。
让每个人都从他们自己单独的数据库副本进行开发的问题是他们不会采纳其他开发人员的更改。
例如,如果有人向数据库表中添加了一列,其他开发人员将不会意识到这一点。其他人也可能无意中添加了同一列。
而且,如果有人以需要更改应用程序代码的方式更改存储过程(例如,添加输入参数),其他开发人员将不会知道。如果他们从源代码管理中获得更新的代码,它将无法在他们的本地数据库副本上运行。
我同意拥有越来越困惑的开发数据库是一个问题。但我不确定从数据库的多个副本进行开发是否会减少开发问题的数量。
我认为您可能无法使用的一种替代方法是定期将生产数据库复制到开发数据库。通常,这只会在新版本发布后发生,该版本对生产数据库模式进行了所需的任何更改。但是您必须有一个生产数据库才能执行此操作。