zoukankan      html  css  js  c++  java
  • flayway数据库管理

    用flayway实现springboot项目启动自动执行sql功能:

    1、在pom文件中引入依赖包:

            <!--自动执行sql-->
            <dependency>
                <groupId>org.flywaydb</groupId>
                <artifactId>flyway-core</artifactId>
                <version>5.2.4</version>
            </dependency>

    注意:如果引入版本过高会出现找不到某一个实体类的报错,在6版本以上上删除了某些实体的;

    2、application.yml文件中添加配置项,如下:

    spring:
      flyway:
        baseline-on-migrate: true   #已当前数据库为基准
        out-of-order: false   #是否按照顺序执行 true:不按照
        # 执行时标记的tag 默认为<<Flyway Baseline>>
        baseline-description: <<Flyway Baseline>>
        # 是否启用flyway
        enabled: true
        # 检测迁移脚本的路径是否存在,如不存在,则抛出异常
        check-location: true
        # 脚本位置
        locations: classpath:db/migration
        # 在迁移时,是否校验脚本,假设V1.0__初始.sql已经迁移过了,在下次启动时会校验该脚本是否有变更过,则抛出异常
        validate-on-migrate: true

    3、在resource目录下新建db/migration文件夹,写sql脚本

    说明:1)默认存放位置是在此目录下

       2)命名规范:

                  a、有序执行sql文件,以V开头,后面是版本号(注意可以上大版本也可以是小版本,比如V2和V2_1)然后是__加注释(注意版本号后面一定是双下划线,在后面如果还有注释就用单下划线),,如:

                                                        

             以V开头的sql文件执行之后是不可以修改的,如果修改启动则会报错,解决方案是删除数据库的记录,如下:

                                 

              

          b、无序执行的sql文件,以R开头,后面没有版本号,直接加注释,此sql文件可修改,flyway会自行判断文件是否有改动,会执行改动的部分sql

                        

  • 相关阅读:
    用python分析1225万条淘宝数据,终于搞清楚了我的交易行为
    Python 中 3 个不可思议的返回
    2020年最新的过某宝滑块验证技术,Python大牛轻松搞定技术难题
    改改Python代码,运行速度还能提升6万倍
    Python的10个神奇的技巧
    Python 在线免费批量美颜,妈妈再也不用担心我 P 图两小时啦
    全程干货,requests模块与selenium框架详解
    Python-选择器Xpath,Css,Re
    Python-Django 模型层-多表查询-2
    Python-Django 模型层-多表查询
  • 原文地址:https://www.cnblogs.com/tercelpower/p/14154012.html
Copyright © 2011-2022 走看看