SpringBoot MyBatis H2 Flyway使用
文章目录
在做一些小创新实验编程或者是项目开发中(非CodeFirst开发模式),对于数据库的一些脚本管理常常使人头疼,至少在过一段时间再去处理的时候,下面不得不说一个小工具:https://flywaydb.org/
可以很好的记录你每次的数据库脚本处理记录,防止脚本重复操作或者忘记操作等等问题。如果多人使用同一个数据库开发,也可以看到每次数据库的更新记录,如果是多人使用本地的数据库,在后期合并也可以使用各自的脚本来统一执行合并,减少合并的风险和工作量。这个体验有点类似于CodeFirst的开发模式,先写代码然后自动同步到数据库,每次的代码更新都会被记录到数据库中。
下面就基于SpringBoot,MyBatis,H2来简单的介绍使用Flyway的功能。
使用
-
在POM文件中加入必要的依赖文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
<!--H2--> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>1.4.197</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.2</version> </dependency> <!--需要注意的h2的版本需要依赖和插件的一致--> <plugin> <groupId>org.flywaydb</groupId> <artifactId>flyway-maven-plugin</artifactId> <version>6.5.4</version> <configuration> <url>jdbc:h2:file:./target/reward</url> <user>root</user> <password>test</password> </configuration> <dependencies> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>1.4.197</version> </dependency> </dependencies> </plugin> <!-- 这里的url的地址需要和配置文件中的url的地址保持一致 -->
-
application.yml配置文件的更新
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
server: port: 8080 servlet: context-path: /tf spring: h2: console: enabled: true path: /h2 datasource: url: jdbc:h2:file:./target/reward username: root password: test driver-class-name: org.h2.Driver # url的地址需要配置和插件的url的一致
-
在 src/main/resources/db/migration 目录下创建脚本文件
1 2 3 4 5 6 7 8
-- 这里需要注意些细节 -- V是必须要大写的,flyway是通过命名约定的, -- V1.1.1__xxxxx.sql,V1__xxx.sql等等都可以 -- 切记是两个小下划线,这个容易看错的。 -- 如果想重复执行的脚本,那么开头使用大写字母R -- 例如:R__People_view.sql -- 重复脚本详细的可以参考:https://flywaydb.org/getstarted/repeatable#creating-a-repeatable-migration V1__Create_user_table.sql
-
执行flyway命令
1 2 3 4 5 6 7 8 9
# 查看当前的flyway的一些状态信息,有哪些脚本需要执行等等 mvn flyway:info # 执行脚本处理 mvn flyway:migrate # 删除所有的表,视图,存储过程等等 # 请在测试和开发环境下使用,生产环境切记不要使用,太危险了。 mvn flyway:clean
-
后续有新的脚本,只需要根据现有的版本号叠加自己创建好了。
总结
如果SpringBoot,Mybatis,H2的一些基本操作不熟悉可以参考:https://www.7benshu.com/post/2020/08/17440225a1d36a462ba72491eaf38ae41b/
有了Flyway的加入,可以大胆的尝试自己的想法和实践,后期复盘项目可以很直观的总结出一些心得和方法论出来。
文章作者 拉斐
永久链接 https://www.7benshu.com/post/2020/08/1804edc4f7fe664d15a5500ec604aaabd2/
版权声明
本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。
上次更新 2022-01-06
7本书-公众号