数据库项目中有多种类型的脚本:PreDeployment
,PostDeployment
,Build
和NotInBuild
。
虽然前两个只能存在于一个副本中,但构建脚本可能非常丰富。
我无法在执行buid脚本的时间和顺序中找到这些信息 这是否意味着构建脚本不必依赖于执行顺序或我错过了什么?
答案 0 :(得分:1)
您可以将一个脚本标记为“PreDeployment”,将一个脚本标记为“PostDeployment”。这些脚本将使用SQLCMD语法包含其他脚本(构建类型“none”)作为该过程的一部分。
预编译脚本将被编译为包含您指定的顺序中包含的所有脚本。部署后脚本将以相同的方式编译。
要在部署前或部署后脚本中包含文件,请使用如下语法:
:r .\IncludeThisScript.sql
发布时,首先运行预部署脚本,然后进行数据库更改,然后运行部署后脚本。还值得注意的是,生成数据库更改脚本时不知道前/后部署脚本将执行或已完成的操作。如果在预部署脚本中创建表并尝试在项目中创建表,则项目可能会失败,因为该表已存在。