SSDT 如何:部署 .dacpac 忽略目标上的放置列
SSDT How to: Deploy .dacpac ignoring drop columns on target
我在 Visual Studio 中使用数据库项目。
在我的场景中,我的客户直观地自定义了我为他们提供的数据库,例如在现有 table 中添加一些列,添加新的 table...
在部署 .dacpac 时,我如何才能不排除这些不属于我的模式的对象?
重要:
Set DropObjectsNotInSource=FALSE 不适用于 table 列。
编辑
Ed,请看我做错了什么:
using (DacPackage dacPackage = DacPackage.Load(DacPacFileName))
{
var dacServices = new DacServices(ConnectionString);
var dacOptions = new DacDeployOptions
{
AdditionalDeploymentContributorArguments = "SqlPackageFilter=KeepTableColumns(*)"
};
dacServices.Deploy(dacPackage, NomeBancoDados, true, dacOptions);
}
“*”是否在 table 过滤器 "ALL TABLES" 中?
我也试了一个 table 名字,但是没用。
我为这个场景写了这个:
https://agilesqlclub.codeplex.com
您可以 "Keep" 如果对象不存在则部署对象但如果有更改则不部署或 "Ignore" 完全忽略。
您可以对类型或名称(正则表达式)执行此操作
埃德
我在 Visual Studio 中使用数据库项目。
在我的场景中,我的客户直观地自定义了我为他们提供的数据库,例如在现有 table 中添加一些列,添加新的 table...
在部署 .dacpac 时,我如何才能不排除这些不属于我的模式的对象?
重要:
Set DropObjectsNotInSource=FALSE 不适用于 table 列。
编辑
Ed,请看我做错了什么:
using (DacPackage dacPackage = DacPackage.Load(DacPacFileName))
{
var dacServices = new DacServices(ConnectionString);
var dacOptions = new DacDeployOptions
{
AdditionalDeploymentContributorArguments = "SqlPackageFilter=KeepTableColumns(*)"
};
dacServices.Deploy(dacPackage, NomeBancoDados, true, dacOptions);
}
“*”是否在 table 过滤器 "ALL TABLES" 中?
我也试了一个 table 名字,但是没用。
我为这个场景写了这个:
https://agilesqlclub.codeplex.com
您可以 "Keep" 如果对象不存在则部署对象但如果有更改则不部署或 "Ignore" 完全忽略。
您可以对类型或名称(正则表达式)执行此操作
埃德