JHipster和Liquibase数据库管理方法与流程

文档序号:37641952发布日期:2024-04-18 18:05阅读:12来源:国知局
JHipster和Liquibase数据库管理方法与流程

本发明涉及医疗数据库管理,具体涉及一种jhipster和liquibase数据库管理方法。


背景技术:

1、在医疗数据库管理领域,数据库管理是软件开发不可或缺的环节,传统的数据库管理流程大致如下:新增数据库表:开发人员在dev环境新增表,使用orm工具生成代码(entity、dto、service等)和其他环境程序发版,开发人员/dba执行新增脚本保持环境同步。修改数据库表:开发人员在dev环境修改表,手动修改代码(entity、dto等)和其他环境程序发版,开发人员/dba执行修改脚本保持环境同步。传统的数据库管理有以下弊端:开发人员直接操作非dev环境数据库风险很大;非dev环境程序发版如果与数据库执行脚本时间不一致,会出现报错;非dev环境容易遗漏执行脚本,导致后续出现问题;修改数据库表后,开发人员需要找到对应的代码进行修改;没有数据库操作版本留痕,一份表经过几次修改后,容易忘记最初设计及修改原因;多人操作同一数据库账号进行维护,出现问题无法找到责任人。

2、为了技术上述问题,中国专利cn108491218a公开一种医疗数据库变更文件生成的方法和装置,利用在领域建模过程中监控到的变更内容,自动生成变更文件至变更目录,代替人为手工编写sql脚本的技术,实现了数据库初始化或者版本更新升级时脚本的自动化生成。但是这种方法仅适合在领域建模过程中有监控的情况下使用,无法满足某些特定变更的需求,可能需要编写大量的脚本或代码来处理,会增加开发成本和难度;在进行医疗数据库变更时,如果没有相应的管理机制,会导致变更的混乱和错误,甚至可能导致数据丢失或损坏,增加开发人员的工作量,降低开发效率。


技术实现思路

1、本发明要解决的技术问题是:克服现有技术的不足,提供一种jhipster和liquibase数据库管理方法。

2、本发明的技术方案为:

3、一种jhipster和liquibase数据库管理方法,包括如下步骤:

4、s1、在jhipster开发平台中定义数据模型,以使数据模型在jhipster开发平台快速生成后,生成程序代码及liquibase的changelog文件,包含数据库表初始化脚本,每次修改模型都会生成新的liquibase的changelog文件,包含数据库表的修改脚本,changelog文件配置用于医疗数据库变更的记录;

5、s2、根据医疗数据库变更的记录,程序运行或发版会读取变更记录里的脚本,对数据库表进行变更,liquibase支持不同格式类型的脚本,目标数据库生成一份命名为databasechangelog的表,用于管理数据库的版本,使用liquibase工具快速回滚到指定版本的数据库。

6、本技术方案通过jhipster和liquibase相互配合的方式,提供一种数据库的高效、可靠、可追溯的管理方法,适用于各种开发场景和需求。在jhipster开发平台中,通过其提供的建表脚本功能,可以快速生成数据库表结构;而一旦这些建表脚本生成后,进一步利用liquibase的特性,将这些脚本与liquibase的changelog文件进行关联,当在jhipster中进行了数据库表的创建、修改或删除操作时,相应的changelog文件就会被自动更新;这种自动配置的机制,用于减少了手动编写和更新changelog文件的工作量,同时也降低出错的可能性;根据数据库的变更记录,选择合适的liquibase格式类型。例如,对于简单的sql语句变更,可以选择sql格式;对于复杂的业务逻辑变更,选择xml或json格式,还可以为每个变更set指定执行条件存放路径,在执行变更时,只有满足这些条件的变更set才会被执行,为医疗数据库变更提供了更多的灵活性和控制性。此外,liquibase还提供了一种快速回滚到指定版本的功能,当需要回滚到某个特定版本的数据库时,只需在liquibase中指定相应的版本号,就会自动为生成相应的回滚sql脚本,并执行这些脚本,将数据库回滚到指定的版本。

7、在实际运用中,例如,在持续集成/持续部署(ci/cd)环境中:ci/cd流程的每次代码提交都可能涉及数据库的变更;通过使用jhipster和liquibase的集成方法,用于确保每次代码提交都伴随着相应的医疗数据库变更,并且这些变更都被记录在changelog文件中,用于轻松地追踪和管理这些变更,确保数据库与代码的一致性。例如,在大型项目开发中:大型项目数据库的变更往往非常频繁,通过使用jhipster和liquibase的集成方法,可以快速生成和更新数据库结构,同时确保每次变更都被正确地记录和回滚,用于提高开发效率,降低出错的可能性;例如,在数据库版本控制中:对于需要频繁进行版本控制的数据库项目,jhipster和liquibase的集成方法提供了强大的版本控制功能,用于轻松地回滚到之前的任何一个版本,同时还可以查看每个版本的变更记录,为数据库版本控制提供了更多的灵活性和控制性。

8、在其中一些实施例中,所述步骤s1中,在jhipster开发平台中通过执行命令生成数据库脚本,包括如下小步:

9、s11、在jhipster的jdl文件中定义数据模型;

10、s12、通过执行jhipster import-jdl xxx.jdl命令,生成程序代码及liquibase的changelog文件,包含数据库初始化脚本;

11、s13、在jhipster的jdl文件中修改数据模型;

12、s14、通过执行jhipster import-jdl xxx.jdl--incremental-changelog-with-entities命令进行代码修改,同时生成liquibase的changelog文件,包含数据库的修改脚本。

13、本技术方案中,在jhipster开发平台中,liquibase用于管理数据库的变更,通过jhipster命令行工具,可以生成liquibase的changelog文件,该文件记录了数据库的所有变更历史。首先,需要在项目中引入liquibase的依赖,然后通过运行jhipster命令行工具的特定命令,例如jhipster generate changelog,可以生成changelog文件;jhipster的jdl文件是一种定义数据模型的语言,允许以图形化的方式定义数据库表结构和数据模型;在jhipster开发平台中,可以使用jdl studio工具来定义jdl文件,在jdl文件中,通过定义表名、字段名、字段类型等对数据库表结构信息进行修改,定义好jdl文件后,通过执行jhipster import-jdl xxx.jdl命令来生成建表脚本;该命令会根据jdl文件中定义的表结构和数据模型,生成对应的sql建表脚本;除了生成建表脚本外,通过执行jhipsterimport-jdl xxx.jdl--incremental-changelog--with-entities命令来生成变更脚本;该命令会根据jdl文件中定义的表结构和数据模型,以及liquibase的changelog文件,生成对应的sql变更脚本;该变更脚本可以用于在已有的数据库中执行变更操作,例如添加新表、修改已有表等。

14、在其中一些实施例中,所述步骤s2中,liquibase格式类型,包括在liquibase中支持的sql,xml,json,yaml四种格式,其中sql格式的changelog学习成本最低,xml格式的changelog可控性最强。

15、在其中一些实施例中,所述步骤s2中,日志文件实例生成后,每个changeset一旦提交后不可更改,liquibase开源工具会校验其是否被变更。

16、在其中一些实施例中,所述步骤s2中,日志文件实例生成后,通过liquibase开源工具管理数据库,避免开发人员直接操作数据库,操作留痕,通过changeset里的author或者git提交记录定位责任人。

17、本技术方案中,利用liquibase工具进行数据库操作可以保留操作记录,追踪和审查变更历史变得更加容易,因为每个变更都有与之关联的作者和提交记录;利用liquibase中的author字段或与git提交记录相关联的信息来确定每个变更的责任人,用于在团队协作环境中追踪和分配责任。

18、在其中一些实施例中,所述步骤s2中,日志文件实例生成后,使用liquibase开源工具时,版本号由开发人员维护,使用author+id标识。

19、本技术方案中,版本号是用于标识每个变更集的唯一标识符,用于区分多个版本,便于后续的追踪和管理。其中,liquibase的版本号的维护有专门的开发人员。

20、在其中一些实施例中,所述步骤s2中,日志文件实例生成后,在程序发版时自动执行sql脚本,避免遗漏执行sql脚本,保证程序与数据库结构一致。

21、本技术方案中,通过在程序发版时自动执行sql脚本,sql脚本可以确保程序和数据库之间的结构保持一致,确保所有必要的医疗数据库变更都得到执行,而不会遗漏任何步骤。

22、本发明与现有技术相比,具有以下有益效果:

23、通过jhipster提供的建表脚本功能,可以快速生成数据库表结构;而一旦这些建表脚本生成后,进一步利用liquibase的特性,将这些脚本与liquibase的changelog文件进行关联,当在jhipster中进行了数据库表的创建、修改或删除操作时,相应的changelog文件就会被自动更新;

24、通过设置执行条件,在执行变更时,只有满足这些条件的变更set才会被执行,为医疗数据库变更提供了更多的灵活性和控制性;

25、通过使用jhipster和liquibase的集成方法,可以快速生成和更新数据库结构,同时确保每次变更都被正确地记录和回滚,用于提高开发效率,降低出错的可能性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1