Sql server 如何设置模式比较文件,使其始终忽略特定的db模式?

Sql server 如何设置模式比较文件,使其始终忽略特定的db模式?,sql-server,visual-studio,sql-server-data-tools,schema-compare,dac,Sql Server,Visual Studio,Sql Server Data Tools,Schema Compare,Dac,我有两个针对同一数据库的SSDT项目。当我从任何项目中使用模式比较功能时,它会检测到其他项目的对象不存在,并将它们设置为删除 我无法将这两个项目合并为一个,因为我使用了DACAPI,因此需要先编译一个项目,然后再编译另一个项目。“依赖”项目的对象都在同一个db模式中(我们称之为myschema),这在“核心”项目中是未知的 是否有任何方法可以设置SCMP文件,以便在比较“核心”项目时忽略放置在myschema中的所有内容?不太可能,我所做的最好的方法是排除您不想要的内容,然后保存SCMP并将其添

我有两个针对同一数据库的SSDT项目。当我从任何项目中使用模式比较功能时,它会检测到其他项目的对象不存在,并将它们设置为删除

我无法将这两个项目合并为一个,因为我使用了DACAPI,因此需要先编译一个项目,然后再编译另一个项目。“依赖”项目的对象都在同一个db模式中(我们称之为
myschema
),这在“核心”项目中是未知的


是否有任何方法可以设置SCMP文件,以便在比较“核心”项目时忽略放置在
myschema
中的所有内容?

不太可能,我所做的最好的方法是排除您不想要的内容,然后保存SCMP并将其添加到项目中。如果您将其他对象添加到该模式中,尽管它们不会被排除(如果您查看scmp,您可以看到排除是如何完成的)

我个人发现使用模式比较是一件罕见的事情,对我来说,更好的做法是自动部署到我的开发人员数据库,并使用它始终保持与项目同步,而不是部分部署项目。我的过程基本上是:

  • 用SSDT编写代码
  • 将所有依赖项目推送到我的开发数据库
  • 试验
  • 登记入住
  • CI系统构建和部署项目、测试等
  • CI系统为其他环境/部署构建脚本

ed

问题是部署让我很紧张!使用Schema Compare,我至少可以清楚地预览将要发布的更改。现在它已经帮了我好几次忙了。自动创建脚本,进行测试,并手动检查每个环境的脚本,直到您更有信心为止(另外,您应该只与您自己的私有开发实例进行模式比较——其他任何事情都只是等待意外发生):)有时候我确实需要将更改推送到生产服务器。我们这里有一个持续的内部应用程序,我们会不断添加到其中。我不确定部署更新的最佳方式是什么。最好的方式是为每个环境(开发、测试、qa、prod等)建立单独的数据库,签入更改,并让您的ci服务器生成/自动部署脚本(如果您喜欢测试、qa和prod—(只有qa通过测试时才对qa,只有qa通过时才对prod等)-您需要测试和环境:)