gpt4 book ai didi

c# - 验证目标数据库架构是否符合 Entity Framework 中的内容?

转载 作者:太空狗 更新时间:2023-10-29 23:47:44 25 4
gpt4 key购买 nike

我们有一个流程,我们的数据库人员使用我们的代码库对应用程序的数据库进行脚本更改(并使用 Juneau 对其进行版本控制)。他们擅长解释新列是否为空,而不是删除现有数据,但偶尔会出现未完全传达的列重命名。因此,他们将对测试服务器上的数据库模式进行一些更改,我们将更新 Entity Framework 以处理这些更改,然后提交我们的代码。此过程工作正常,除了需要部署的时候。

我们设置了 TFS 以将成功的构建部署到适当的服务器,但不能保证该环境的数据库已更新。我们不关心是否有额外的字段/表/ View /等。存在于目标数据库中,但我们希望更改构建以检查数据库是否至少包含 EF 知道的所有内容。

我看了this question ,但我不需要模式完全匹配。另外,我们不希望它直接创建/修改数据库。和 this question看起来它正在努力实现类似的理想,但仍然不是我们想要实现的目标。我们只需要某种集成测试来验证我们的 EF 版本是否适用于目标架构。

最佳答案

我想知道为什么您尝试在不更改数据库的情况下部署您的应用程序。您的应用程序依赖于数据库,因此部署应始终在数据库之后完成。看起来您将投入大量时间来开发验证以修复错误的部署过程(修复过程本身是正确的解决方案)。

无论如何,您可以创建一些数据库的“验证”,但这需要一些时间。如果您使用的是 EDMX 文件,您可以将其作为 XML 打开并阅读其 SSDL描述所有预期表、列、关系、 View (以 SELECT SQL 查询的形式)、存储过程和函数的部分。您可以解析此 XML 部分并使用系统数据库 View (sys.tablessys.columns、...)来查询这些对象是否存在于数据库中。

另一种方法可以使用数据库差异。将当前测试数据库与目标数据库进行比较的工具。这将需要可以从命令行执行的工具,您将必须解析其输出以找到重大更改。

关于c# - 验证目标数据库架构是否符合 Entity Framework 中的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8098074/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com