首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用基于版本字段的已编号脚本升级MySQL数据库

如何使用基于版本字段的已编号脚本升级MySQL数据库
EN

Database Administration用户
提问于 2018-08-05 08:32:29
回答 1查看 243关注 0票数 1

我有一个数据库,其中包含一个版本表,其中存储了一个值,即数据库版本号。

我希望能够使用编号脚本自动更新数据库版本。

如果数据库是"6“版本,并且我有不一致的批注编号,如下所示:

代码语言:javascript
复制
001.sql, 02.sql, 3.sql, 4script.sql, 5.sql, 6.upgrade.sql, 7.sql, 8.data.sql, 009.updated.sql

什么是只运行大于版本号的脚本并按顺序执行此操作的最佳方法?

我应该使用SQL脚本还是创建bash脚本?

我有点困在如何处理这件事上,所以任何建议或建议都会很感激.

EN

回答 1

Database Administration用户

发布于 2018-08-06 05:16:32

创建“主脚本”,该脚本检测当前的DB版本,并且只运行适合它的脚本。例如,它可以看起来像

代码语言:javascript
复制
drop procedure if exists main_proc;
delimiter @@;
create procedure main_proc
    select version into @version from service_table;
    if @version < 2 then 
        source 001.sql;
        update service_table set version = 2;
    end if;
    if @version < 2.5 then 
        source 02.sql;
        update service_table set version = 2.5;
    end if;
    if @version < 3 then 
        source 3.sql;
        update service_table set version = 3;
    end if;
    -- and so on
    end; 
@@;
delimiter ;
call main_proc;
drop procedure main_proc;

不要忘记错误处理程序(没有脚本文件或访问错误、脚本执行过程中的错误等等)。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/214087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档