我们有一个由大约 129 个表组成的 Visual Studio 数据库项目。它是我们内部基于 Web 的 CRM/呼叫中心产品的主要数据库,该产品仍在积极开发中。
我们使用 VS 中的 SSDT 发布在进行更改时部署到实例。我们通过 SQL Express (2016) 在本地开发,还有一个 LAB 环境用于运行 SQL 2014 的性能和负载测试,一个运行 2012 的 UAT 环境,最后部署到运行 SQL 2016 的生产环境。
在发布时生成的脚本的所有环境(生产除外)都非常好,只做更改。生产脚本做了大量的工作。似乎删除并重新创建了更多的表,我知道这些表没有改变(上次部署了 37 个表)。其中一些表的行数以百万计,整个发布需要 25 分钟以上。
如果我重复发布到生产,它会再次删除并重新创建 37 个表。生产数据库确实有复制,我必须在部署之前禁用它(不确定这是否是一个因素)。
我不明白 Production 发布总是想要删除和重新创建表的内容,即使什么都没有改变。我希望得到一些关于在哪里寻找确定为什么 SSDT 认为需要重新创建这些的建议。
使用 Visual Studio Professional 2017 V 15.5.5 和 SSDT 15.1