小编lu.*_*min的帖子

数据层应用程序框架(DAC Fx)中的复杂数据迁移

我很高兴能够使用DAC Fx和声明式数据库开发.对我来说,主要的障碍是如何处理跨架构的几个不同版本的复杂数据迁移.在旧世界中,我们可以按顺序运行所有升级脚本,这可以保证在数据迁移时架构处于正确状态.当升级路径是动态的时,这是如何工作的?

例如,假设现有实例上有多个版本的架构(DACPAC1-4):

  • DACPAC1:tableA存在且具有宝贵的客户端数据
  • DACPAC2:tableA已弃用,由tableB和规范化的tableC取代; 添加新表格
    • 部署后脚本:将数据从tableA移动到新的tableB和tableC; 下降表A.
  • DACPAC3:tableC有一个新的可空列columnX
    • 部署后脚本:基于tableD填充可空列
  • DACPAC4:tableC.columnX不可为空

如果我需要能够支持将DACPAC1-3服务器升级到最新的DACPAC4,我现在必须以足够聪明的方式编写我的部署前和部署脚本,以检测目前哪个DACPAC在目标上并正确处理数据迁移按顺序排列.此外,我不能简单地重复使用我最初编写的天真的部署后脚本,因为它们依赖于模式的中间版本.

提前感谢任何建议!

data-migration dac data-tier-applications

5
推荐指数
1
解决办法
788
查看次数