Flyway是什么?
- 数据库的版本控制 , 跨所有环境的强大架构演变 。轻松,愉快和简单的SQL 。
为什么要迁移数据库?
参考flyway官网 https://flywaydb.org/getstarted/why
Flyway如何运作
参考官网 https://flywaydb.org/getstarted/how
接下来在实战中使用flyway来管理H2数据库版本来使用flyway
1),在pom.xml文件中添加如下
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- flyway start -->
<plugin>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-maven-plugin</artifactId>
<version>4.0.3</version>
<!-- 关联数据库账号与密码 -->
<configuration>
<url>jdbc:h2:~/test</url>
<user>root</user>
<password>root</password>
</configuration>
<dependencies>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.199</version>
</dependency>
</dependencies>
</plugin>
<!-- flyway end -->
</plugins>
</build>
2),在application添加配置如下
# 指定flyway脚本位置
spring.flyway.locations=classpath:/db/migration
# 打开flyway执行日志
logging.level.org.flywaydb=debug
3),在resources下面创建db然后在创建migration文件夹用于存放数据库版本控制语句
4),在做下一步需要注意一下几点
- 把原先数据库的表结构转化为sql语句保存起来,如果有多张表,都需要保存起来sql语句
我在这里因为只有一个tb_user表所以在这里删除所有的H2数据库表结构
5),这里在db/migration创建一个sql文件命名如下
- 比如数据库有一个表为 tb_user
- 那flyway 创建的版本控制文件名称为 V1_Create_tb_user_table.sql
如下
6),现在到了 flyway 迁移数据库的时候了
如下执行成功
然后刷新一下H2数据库如下
例如,有这样一个需求,由于tb_user 表中缺少一个描述字段,我们这里可以使用flyway可以轻松的管理数据库表结构具体操作如下
1),在db/migration文件中创建第二个sql问价文件名如下 V2__Add_describe_col_to_tb_user_table.sql(见名知意)
2),执行flyway命令执行sql语句
如下是执行成功
3),刷新数据库查看字段是否添加
字段成功添加。
terminal 默认是不能使用git命令的如需解决参考与 https://blog.csdn.net/qq_40646143/article/details/99589559
越学习发现自己要学的东西还有很多...