如何设置模式比较文件,以便它始终忽略特定的数据库模式?
How to setup schema compare file so that it always ignores a specific db schema?
我有两个针对同一个数据库的 SSDT 项目。当我使用任何项目的模式比较功能时,它会检测到其他项目的对象不存在并将它们设置为删除。
我无法将这两个项目合并为一个项目,因为我使用了 DAC API,并且有时我需要先编译一个项目。 "dependent" 项目的对象都在同一个数据库模式中(我们称之为 myschema
),这在 "core" 项目中是未知的。
有什么方法可以设置 SCMP 文件,以便在比较 "core" 项目时它忽略放在 myschema
中的所有内容?
不是真的,我所做的最好的事情就是排除你不想要的东西,然后保存 SCMP 并将其添加到项目中。如果您将其他对象添加到该模式,但它们不会被排除(如果您查看 scmp,您可以看到排除是如何完成的)。
我个人发现使用架构比较是一件很少见的事情,(对我来说)最好自动部署到我的开发人员数据库并使用它始终与项目保持同步而不是部分部署项目.我的流程基本上是:
- 在 SSDT 中编写代码
- 将所有依赖项目推送到我的开发数据库
- 测试
- 签到
- CI 系统构建和部署项目、测试等
- CI 系统为其他环境构建脚本/部署
编辑
我有两个针对同一个数据库的 SSDT 项目。当我使用任何项目的模式比较功能时,它会检测到其他项目的对象不存在并将它们设置为删除。
我无法将这两个项目合并为一个项目,因为我使用了 DAC API,并且有时我需要先编译一个项目。 "dependent" 项目的对象都在同一个数据库模式中(我们称之为 myschema
),这在 "core" 项目中是未知的。
有什么方法可以设置 SCMP 文件,以便在比较 "core" 项目时它忽略放在 myschema
中的所有内容?
不是真的,我所做的最好的事情就是排除你不想要的东西,然后保存 SCMP 并将其添加到项目中。如果您将其他对象添加到该模式,但它们不会被排除(如果您查看 scmp,您可以看到排除是如何完成的)。
我个人发现使用架构比较是一件很少见的事情,(对我来说)最好自动部署到我的开发人员数据库并使用它始终与项目保持同步而不是部分部署项目.我的流程基本上是:
- 在 SSDT 中编写代码
- 将所有依赖项目推送到我的开发数据库
- 测试
- 签到
- CI 系统构建和部署项目、测试等
- CI 系统为其他环境构建脚本/部署
编辑