V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
andyskaura
V2EX  ›  程序员

sqlserver 高版本数据库如何将关系图迁移到低版本?

  •  
  •   andyskaura · 2023-05-19 15:04:59 +08:00 · 942 次点击
    这是一个创建于 552 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在设计数据库时是连接的本地数据库( docker latest 版本,也就是最高版本),花了大量精力设计完后往云端迁移,迁移方式是使用数据库完整备份,错误提示如下:

    System.Data.SqlClient.SqlError: 该数据库是在运行版本 16.00.4035 的服务器上备份的。该版本与此服务器(运行版本 13.00.1601)不兼容。请在支持该备份的服务器上还原该数据库,或者使用与此服务器兼容的备份。 (Microsoft.SqlServer.SmoExtended)

    用脚本可以将表还原,但是关系图就丢了,设计里面关系图非常重要,不能丢。云端的数据库也不方便升级。
    我还有什么方案能补救吗?

    6 条回复    2023-05-20 00:53:38 +08:00
    RockShake
        1
    RockShake  
       2023-05-19 15:31:09 +08:00
    ER 图不是可以根据现有的表结构自动生成的么,你只要保证你的表 /存储过程 /视图都正常还原过去,再手动用 Diagram Tools 生成。
    andyskaura
        2
    andyskaura  
    OP
       2023-05-19 15:34:06 +08:00
    @RockShake 目前就是这种方式,但工作量也很大,很多注释排版等
    opengps
        3
    opengps  
       2023-05-19 15:39:35 +08:00
    关系图需要在服务器上看嘛?对于生产环境,从来都是求稳不求新,所以只要数据和结构都没问题,那就可以不需要这个支持操作,相对于开发人员求新来说,并没有太直接的冲突。项目应当从尽可能从开始开发的时候就统一要求版本,对于现在已经出现了不一致的问题,则考虑是否有必要进行降级。
    andyskaura
        4
    andyskaura  
    OP
       2023-05-19 15:47:53 +08:00
    @opengps 的确 吃一堑长一智,以后一定会特别注意版本问题
    RockShake
        5
    RockShake  
       2023-05-19 21:56:04 +08:00
    @andyskaura

    https://endoflife.date/mssqlserver

    实际上你用的 2019 从状态上来说是目前 Active Support 的版本,但是生产环境中绝大多数还是 2016 甚至 2012 版本,这个需要与 Infrustructure 组项目启动就需要 Align 好,你的 Dev & Test 环境需要与 Prod 环境一致。
    huzhizhao
        6
    huzhizhao  
       2023-05-20 00:53:38 +08:00 via iPhone
    属实是蛋疼了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1340 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 73ms · UTC 23:48 · PVG 07:48 · LAX 15:48 · JFK 18:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.