Gus*_*avo 9 database-migration data-tier-applications fluent-migrator sql-server-2012 entity-framework-4.3
我有一个带有SQL Server的以数据为中心的应用程序.它将被部署的环境不在我们的控制之下,并且没有DBA(它们都是小型企业),因此我们需要尽可能自动地分发每个应用程序/数据库更新的过程.
除了应用程序版本之间的正常变化(有时候是不可预测的),我们已经知道我们需要为每个版本分发一些新的种子数据.有时,此种子数据将与我们系统中的其他数据相关.例如:在v2-v3更新过程中,我们可能需要插入2个新行的某些主数据,在v5-v6更新过程中需要插入其他5行.
我们已经检查了Entity Framework Db Migrations(可用于自4.3.1版本以来没有Code-First的现有数据库),它以更自动和受控的方式表示传统的顺序脚本(如Fluent Migrations).
另一方面,凭借不同的理念,我们检查了SSDT及其dacpac,快照以及部署前和部署后脚本.
哪些技术/哲学更适合所描述的案例?
可以使用的任何其他技术/哲学?
还有其他建议吗?
提前致谢.
这是一个有趣的问题。在 Red Gate,我们希望在今年晚些时候解决这个问题,因为我们有许多客户询问我们如何提供简单的部署包。我们确实有SQL Packager,它本质上是将 SQL 脚本包装到 exe 中。
我想说 dacpac 旨在涵盖您所描述的用例。然而,据我了解,它们的工作原理是在应用于目标时动态生成部署脚本。缺点是您不会有部署预先测试的 SQL 脚本时可能获得的温暖模糊的感觉。
我之前没有尝试过使用 dacpac 更新数据,所以我很想知道它的效果如何。据我记得,它会截断目标表并重新填充它们。
我没有 EF 迁移经验,因此我很想阅读有关此主题的任何答案。