本文介绍了SpringBoot开启数据库迁移的FlyWay使用,分享给大家,具体如下:
站在用户的角度思考问题,与客户深入沟通,找到善右网站设计与善右网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、成都网站制作、企业官网、英文网站、手机端网站、网站推广、国际域名空间、虚拟主机、企业邮箱。业务覆盖善右地区。一,首先我先了解下FlyWay是如何运转的。
最简单的方案是将Flyway指向一个空数据库。
它将尝试找到其元数据表。当数据库为空时,Flyway将不会找到它, 而是创建它。您现在拥有一个名为SCHEMA_VERSION的单个空表的数据库 :
该表将用于跟踪数据库的状态。之后,Flyway将开始扫描应用程序的文件系统或类路径进行迁移。它们可以用Sql或Java编写。
然后根据其版本号对迁移进行排序,并按顺序应用:
随着应用每个迁移,元数据表将相应更新:
schema_version
随着元数据和初始状态的到位,我们现在可以谈论迁移到较新的版本。
Flyway将再次扫描应用程序的文件系统或类路径进行迁移。根据元数据表检查迁移。如果版本号低于或等于标记为当前版本的版本号,则忽略它们。
剩余的迁移是挂起的迁移:可用但未应用。
然后,他们通过版本号进行排序,并依次执行:
就是这样!每当需要发展数据库时,无论是结构(DDL)还是参考数据(DML),只需创建一个版本号高于当前版本的新迁移。下一次Flyway启动时,它会发现并相应地升级数据库。
二,FlyWay在SpingBoot的使用
一种途径是通过Spring Boot的spring.jpa.hibernate.ddl-auto属性将hibernate.hbm2ddl.auto属性设置为create、 create-drop或update。例如,要把hibernate.hbm2ddl.auto设置为create-drop,我们可以在application.yml里加入如下内容:
spring: jpa: hibernate: ddl-auto: create-drop