我们正在探索实现三项任务的选项: 1)源代码管理数据库;2)集中和协调所有数据库更改,并将它们与应用程序更改联系起来;3)自动化数据库部署。
我正在考虑为此使用DACPACS,但我们有4个生产数据库,它们之间的复制已经就位。复制是很久以前建立的,并且以一种奇怪的方式实现。本质上,并不是所有的4个数据库都完全相同。有些数据被复制,而有些数据没有被复制。
我的问题是关于应用DACPACS。如果我们在部署期间将DACPACs应用于每个数据库,这将如何影响复制?
谢谢
发布于 2017-12-02 02:54:48
简短的回答是: SSDT (dacpacs)不支持Server复制。
更长的答案是,您可以通过使用预部署脚本和post部署脚本来解决这一限制。还可以编写自己的部署贡献扩展,以便更好地处理复制的对象。
对于预部署脚本和post部署脚本方法,您可以编写一些捕获当前复制状态(发布、文章、订阅和订阅)的内容,然后将其全部删除。然后,dacpac更新当前模式,并由(S)重新创建复制。
如果您对复制拓扑和配置非常严格,这可能会奏效。不过,这可不容易!另一种类似的方法(也可以将数据库置于源代码控制下)是,您只允许从脚本中配置复制,并且这些脚本将成为您部署前/后的更改(与上面类似,但不太动态)。
另一种方法是使用另一个系统进行数据库控制和部署。类似于:
这两种方法都采用数据库迁移方法,而不是模型优先方法。这些可能会使复制方面更容易处理。
https://dba.stackexchange.com/questions/192077
复制相似问题