是否有一种方法可以自动地使用Azure DevOps将所有数据从一个服务器上的数据库复制到另一个服务器上的相同数据库?
我们与SQL server数据库交互的所有web应用程序和桌面应用程序代码都在Azure DevOps中的CI/CD管道中。
场景是,我们有一个具有应用程序+数据库的开发服务器。Azure DevOps自动将所有内容都部署到开发服务器上。然后运行一个进程来填充dev上的数据库--这需要很长时间,因为要处理的数据量很大。然后,我们验证是否批准将其部署到测试服务器,然后最终用于暂存/生产。
我想使用数据库中的DACPAC文件,并使用它在Visual中创建Server数据库项目,这样我们就可以在DevOps中对其进行源代码管理,然后在Azure DevOps中使用任务来更新数据库。因此,这应该是为了处理任何模式更改。
但是,我仍然停留在下一步,即在部署完成后如何处理数据?我需要将所有更新的数据从dev服务器迁移到测试。我可以在测试中重新运行我们用来填充数据的工具,但是它可能需要一天的时间运行。
我发现中有一些工具,如
但我不知道如何从Azure DevOps管道中访问这些。也许Azure DevOps不是这个任务的合适工具吗?
为了防止我走错了轨道,我愿意选择上面提到的任何东西。
编辑:生成数据需要很长的时间,它需要同时用于开发和测试(也就是说,开发数据与测试数据是相同的,这实际上是首选的)。我提出上述问题的原因是为了节省时间,因为用于生成数据的过程需要很长的时间。在数据库之间复制数据将比每次更新时在每个服务器上运行数据生成过程更快。
发布于 2021-11-09 07:35:34
也许您可以尝试使用dbatools复制数据库。
https://docs.dbatools.io/Copy-DbaDatabase
在AzureDevops中调用powershell脚本,但是通过这种方式,您将复制所有内容,我不认为这是您想要的。
您最终可以将insert/update脚本放在数据库项目的后部署脚本中,这样就可以在dacpac部署期间将相同的脚本应用于生产。
https://dba.stackexchange.com/questions/302328
复制相似问题