flyway,maven,oracle集成记录

Flyway功能以及sql命名规范介绍

Flyway是一款开源的数据库sql脚本版本管理工具。
它的原理是:在schema中生成一张version表,记录此次更新的sql脚本版本号,保证版本号能和数据库对应起来。
在定义sql脚本名称的时候需要使用如下版本规范:
1、前缀(可配置,默认值:V)
2、版本
3、分隔符(两个下划线)
4、描述(下划线或空格分开)
5、后缀(可配置,默认情况下:SQL)
如:V1_Create_person_table.sql V2_Insert_persons.sql
其中Create_person_table和Insert_persons都是脚本功能的描述

创新互联-专业网站定制、快速模板网站建设、高性价比迎泽网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式迎泽网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖迎泽地区。费用合理售后完善,10多年实体公司更值得信赖。

Flyway目录结构以及配置介绍

具体集成过程如下:
目录结构和maven的目录结构一致,如下:
flyway,maven,oracle集成记录
flyway,maven,oracle集成记录
可以看到和src同级目录有一个flyway的配置文件和工程的pom文件。
配置文件flyway.properties内容如下,主要配置的都是一些数据库的连接信息.一目了然:

flyway.driver=oracle.jdbc.OracleDriver
flyway.url=jdbc:oracle:thin:@192.168.2.200:1521/orcl
flyway.user=qq
flyway.password=qq
flyway.schemas=FLYWAY
flyway_table=qq_version
flyway.placeholders.keyABC=valueXYZ
flyway.placeholders.otherplaceholder=value123

加flyway的plugin信息,如下:
flyway,maven,oracle集成记录
切记在pom文件的依赖信息里一定要出现数据库的驱动包:
flyway,maven,oracle集成记录
其中lib目录下放的是flyway的jar包flyway-commandline-4.0-sources.jar
切记:flyway的sql脚本存放目录默认是resources/db/ migration。
可以看到在migration目录下我有两个脚本,脚本如下:
V1__Create_person_table.sql:
create table PERSON (
NAME varchar(80) not null
);
V2__Insert_persons.sql:
INSERT INTO PERSON (NAME) VALUES ('Peter Meyer');
INSERT INTO PERSON (NAME) VALUES ('Peter Bonnd');
INSERT INTO PERSON (NAME) VALUES ('Klara Korn');

Jenkins工程配置介绍

配置完成之后,需要在jenkins上面配置工程了,这里需要注意的只是构建参数:
mvn flyway:init(初始化Flyway metadata)
mvn flyway:migrate(执行Flyway升级操作)
mvn flyway:validate(校验Flyway数据正确性)
如下,是我的构建参数:
-X -Dflyway.configFile=flyway.properties flyway:migrate -Dmaven.test.skip=true
参数介绍:-X:debug级别构建,打印详细的构建过程
-Dflyway.configFile=指定对应的flyway配置文件
-Dmaven.test.skip=true跳过测试用例

常见错误分析

1.构建失败,create schema没权限

flyway,maven,oracle集成记录
还记得配置文件里面有一个参数:
flyway.schemas=qq
在这里用户必须具备创建schema的权限,因此这里给用户授予dba权限:
flyway,maven,oracle集成记录
重新编译执行通过。

2.构建之后找不到生成的表:

flyway,maven,oracle集成记录
由于schema_version是记录数据库版本信息的,因此flyway对其做了保护策略,如果要查看这张表,则必须给表名加双引号,如:select * from "schema_version"
flyway,maven,oracle集成记录
flyway,maven,oracle集成记录

这里说明下:

1.对于schema的构建,在采用jenkins构建的时候flyway先会去检测schema存不存在,不存在创建,存在则跳过。因此建议大家在使用flyway构建前,先创建好schema

flyway,maven,oracle集成记录

2.在写配置文件的时候由于oracle默认的用户名名称都是大写,因此配置文件中的schema也请标注为大写。

构建结果查看

flyway,maven,oracle集成记录
flyway,maven,oracle集成记录
flyway,maven,oracle集成记录
可以在数据库里查看生成的schema_version信息:
flyway,maven,oracle集成记录
这张表就记录了数据库的sql脚本版本信息。后续有更新也会从这张表里面获取当前的数据库版本信息。

标题名称:flyway,maven,oracle集成记录
URL标题:https://www.cdcxhl.com/article28/pgejcp.html

成都网站建设公司_创新互联,为您提供网站导航小程序开发营销型网站建设微信公众号用户体验企业网站制作

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网站建设