SpringBoot的Mybatis使用Flyway管理H2数据库版本

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

越学习发现自己要学的东西还有很多...

发布了256 篇原创文章 · 获赞 188 · 访问量 65万+

猜你喜欢

转载自blog.csdn.net/qq_40646143/article/details/99621051