我们有很多环境
trunk(开发集成)-> devel(团队测试)-> qa(回归测试)-> live(客户使用)
每个都有自己的数据库,用于处理该环境中的代码。
数据库的内容一部分是元数据,一部分是数据。例如,如果您正在构建报告,那么您可以从中选择构建报告的列是元数据,而用户已经构建的报告是数据。元数据沿推广链向上流动(在主干中引入,然后进入 devel->qa->live),以及经过测试的代码。然而,数据并没有得到提升。此外,特定环境中的数据不得被删除或损坏,并在升级到该环境后继续工作。
有什么好的策略可以管理和自动化这样的设置?
我们正在使用 .NET/C#/SQL Server,但我认为这个问题是通用的,对于任何拥有大量开发人员的成熟应用程序都必须全面处理,并关心用户在其上生成的数据.
最佳答案
如果您要问我的想法,Visual Studio 的 Team Suite 版本中的数据库版本控制工具完全可以胜任这项任务。它们包括用于模式比较(DB 到 DB、项目到 DB 等)、数据生成、填充甚至存储过程单元测试的工具。
关于c# - 您如何维护多个版本的数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4330679/