lu.*_*min 5 data-migration dac data-tier-applications
我很高兴能够使用DAC Fx和声明式数据库开发.对我来说,主要的障碍是如何处理跨架构的几个不同版本的复杂数据迁移.在旧世界中,我们可以按顺序运行所有升级脚本,这可以保证在数据迁移时架构处于正确状态.当升级路径是动态的时,这是如何工作的?
例如,假设现有实例上有多个版本的架构(DACPAC1-4):
如果我需要能够支持将DACPAC1-3服务器升级到最新的DACPAC4,我现在必须以足够聪明的方式编写我的部署前和部署脚本,以检测目前哪个DACPAC在目标上并正确处理数据迁移按顺序排列.此外,我不能简单地重复使用我最初编写的天真的部署后脚本,因为它们依赖于模式的中间版本.
提前感谢任何建议!
小智 0
我通常做的事情如下:
创建一个包含名为 SchemaVersion 的属性的系统表。所有升级脚本都被编程为首先检查当前版本,然后决定是否执行其内容。执行后,它将 SchemaVersion 设置为脚本中存储的最新版本。
我通常还包含另一个名为 MinAppVersion 的属性(与当前架构兼容的最低版本)。当应用程序尝试连接到数据库时,它将当前程序集版本与数据库中存储的 MinAppVersion 进行比较。如果版本等于或高于 MinAppVersion,则建立连接,否则抛出异常。
我希望这有帮助。亲切的问候,
| 归档时间: |
|
| 查看次数: |
788 次 |
| 最近记录: |