ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:17.66KB ,
资源ID:17497458      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17497458.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(SpringBoot 04 集成Flyway实现数据库版本控制Word文件下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

SpringBoot 04 集成Flyway实现数据库版本控制Word文件下载.docx

1、Oracle, SQL Server, SQL Azure, DB2, DB2 z/OS, MySQL (including Amazon RDS), MariaDB, Google Cloud SQL, PostgreSQL (including Amazon RDS and Heroku), Redshift, Vertica, H2, Hsql, Derby, SQLite, SAP HANA, solidDB, Sybase ASE and Phoeni 官网链接:Homepage - Flyway Flyway是如何工作的?可以查看之前的一篇译文,这里就不再重复了,本文主要介绍Spr

2、ingboot如何集成flyway 【译文】数据库管理工具Flyway_学然后知不足!-CSDN博客 2.SpringBoot集成Flyway 2.1 容易示例 参考版本信息 示例信息 版本 springboot 2.6.2 flyway 7.15.0 mysql 5.7.30 参考名目结构 1. 创建SpringBoot应用,并添加flyway-core依靠,本例中将实现初始化脚本到mysql数据库,因此同时引入了驱动依靠 mysql-connector-java org.flywaydb flyway-core 7.15.0 参考pom.xml依靠如下 org.springframewor

3、k.boot spring-boot-starter spring-boot-starter-test test spring-boot-starter-jdbc mysql mysql-connector-java 8.0.28 org.junit.jupiter junit-jupiter-api 5.8.2 2. 在application.properties中设置flyway信息 server.port=7002 是否启动,默认开启 spring.flyway.enabled = true 脚本存放路径 spring.flyway.locations = classpath:db/mi

4、gration 当flyway第一次运行时,会在我们对应的数据库中新建一个记录脚本运行状况的 spring.flyway.table=flyway_schema_history flyway指向的数据库链接 spring.datasource.url=jdbc:mysql:/127.0.0.1:3306/runoob?useUnicode=true&characterEncoding=utf8 用户名 spring.flyway.user=nacos 密码 spring.flyway.password=nacos 数据库驱动 spring.flyway.driver-class-nam

5、e=com.mysql.cj.jdbc.Driver 3. 脚本收拾 将脚本收拾到resource/db.migration路径下,例如 参考SQL脚本信息如下 /V1.20190621.1854_CREATE_PERSION_TABLE.sql脚本内容 create table PERSON ( ID int not null, NAME varchar(100) not null ); /V1.20190621.1904_INIT_PERSION.sql 脚本内容 insert into PERSON (ID, NAME) values (1, &39;Axel&); insert int

6、o PERSON (ID, NAME) values (2, &Mr. Foo& insert into PERSON (ID, NAME) values (3, &Ms. Bar& sql 名目中存放脚本文件,脚本名称命名方式 版本化迁移: 执行一遍,版本号唯一,有重复会报错: 格式:V+版本号 +双下划线+描述+结束符 重复的迁移,不需要版本号,脚本发生变幻启动就会执行:R+双下划线+描述+结束符 撤消迁移:U+版本号 +双下划线+描述+结束符 4. 运行启动主类,运行日志如下,从日志中可以看到如下信息 启动后正确链接到数据库runoob 验证2个迁移脚本胜利 用法指令行的方式创建了一张名

7、称为 flyway_schema_history 的记录表,这里要注重,全部脚本一旦执行了就会在 flyway_schema_history中创建记录, 假如出错引发问题,可以删除表中记录,反正启动的时候还会再执行,固然生产环境不建议此办法,但生产环境上部署的包都是验证过无问题的包也不会浮现此问题 执行了resource/db.migration 名目下的两个脚本,并执行胜利 INFO 190688 - main o.f.c.internal.license.VersionPrinter : Flyway Community Edition 7.15.0 by Redgate INFO 190

8、688 - main o.f.c.i.database.base.BaseDatabaseType : Database: jdbc:3306/runoob (MySQL 5.7) INFO 190688 - main mand.DbValidate : Successfully validated 2 migrations (execution time 00:00.016s) INFO 190688 - main o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table —&runoob&。flyway_s

9、chema_history& with baseline INFO 190688 - main mand.DbBaseline : Successfully baselined schema with version: 1 INFO 190688 - main mand.DbMigrate : Current version of schema &: Migrating schema & to version "1.20190621.1854 - CREATE PERSION TABLE&1.20190621.1904 - INIT PERSION& Successfully app

10、lied 2 migrations to schema &, now at version v1.20190621.1904 (execution time 00:00.225s) 停止服务后,重新运行日志如下,从日志中可以看到信息 本次没有重复执行脚本, 日志中打印当前脚本编号20190621.1904, 即最后1次执行的脚本 INFO 193184 - main o.f.c.internal.license.VersionPrinter : INFO 193184 - main o.f.c.i.database.base.BaseDatabaseType : INFO 193184 - m

11、ain mand.DbValidate : Successfully validated 3 migrations (execution time 00:00.024s) INFO 193184 - main mand.DbMigrate : 1.20190621.1904 Schema & is up to date. No migration necessary. 查看Mysql数据库 2.2 常见问题 1.Caused by: org.flywaydb.core.api.FlywayException: Found non-empty schema(s) Caused by: Found

12、 non-empty schema(s) & but no schema history table. Use baseline() or set baselineOnMigrate to true to initialize the schema history table. at org.flywaydb.core.Flyway$1.execute(Flyway.java:200) &flyway-core-7.15.0.jar:na170) & at org.flywaydb.core.Flyway.execute(Flyway.java:586) & 问题缘由: 第一执行的时候没有找到

13、schema history table ,这张表其实就是application.properties文件中spring.flyway.table属性配置的表,因此要么用法指令创建一个或者在application.properties文件中设置 spring.flyway.baseline-on-migrate=true , 2.Caused by: Unsupported Database: MySQL 5.7 at org.flywaydb.core.internal.database.DatabaseTypeRegister.getDatabaseTypeForConnection(Da

14、tabaseTypeRegister.java:106) &flyway-core-8.4.2.jar: at org.flywaydb.core.internal.jdbc.JdbcConnectionFactory.(JdbcConnectionFactory.java:75) & at org.flywaydb.core.FlywayExecutor.execute(FlywayExecutor.java:143) & at org.flywaydb.core.Flyway.migrate(Flyway.java:124) &flyway-core对数据库版本有要求,例如flyway-c

15、ore的当前最高版本V8.4.3,不能用法 MySQL 5.7, 当flyway-core 降低到V7.15.0后 问题解决,所以匹配flyway-core和数据库版本后问题即可解决 2.3 源码参考 链接: 源码参考Demo-flyway 文章总结 本文介绍了Springboot集成flyway方式 用法Flyway之前部署脚本方式普通为开发人员根据挨次汇总数据库的升级脚, 然后DBA或者售后在生产库中根据挨次执行升级脚本。 用法Flyway之后部署脚本方式就变更为开发人员将脚本构建到程序包中, 部署程序包后启动时Flyway自动执行脚本升级 前一篇: SpringBoot 03 大事监听处理 文章学问点与官方学问档案匹配,可进一步学习相关学问 Java技能树用法JDBC操作数据库JDBC概述6686 人正在系统学习中

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1