代码之家  ›  专栏  ›  技术社区  ›  Legion

为什么Azure CI DACPAC试图删除一个不存在的列,但失败了?

  •  0
  • Legion  · 技术社区  · 4 年前

    我正试图通过Azure CI DACPAC将数据库更新部署到SQL Server,但我不断收到数据丢失错误,可能会导致部署失败。

    警告SQL72015:column[dbo]。[MyTable]。[NonExistantField]正在删除,可能会发生数据丢失。

    为什么它会试图删除一个不存在的列?我在任何地方都找不到这个领域的参考文献。我怎样才能让它停止掉专栏呢?

    第二,更一般地说,是否有一个即使发生数据丢失也可以强制部署它的设置?我不在乎数据丢失,这无关紧要,这个错误迫使我手动更新整个数据库。

    0 回复  |  直到 4 年前
        1
  •  0
  •   Shamrai Aleksander    4 年前

    这取决于您试图如何部署更新。查看部署步骤以获得一些建议将非常有用。例如,如果通过 SqlPackage ,你可以使用 /p:BlockOnPossibleDataLoss='False' 选项

        2
  •  0
  •   Legion    4 年前

    我不知道确切的问题是什么,但解决方案是通过SSM进入数据库,删除有问题的表,然后允许通过部署重新创建它。

    奇怪的是,在我的第一次尝试中,我丢弃了表并在SSMS中重新创建了它,然后进行了部署,但它仍然失败,并发出了数据丢失的警告。