Flyway的简单介绍及使用详解_其它综合

来源:脚本之家  责任编辑:小易  

叶修从211315岁离家出走之后用自家双胞胎弟5261弟叶秋的名字参加了荣耀4102联赛,一起奋斗的苏沐秋在1653参赛前夕因车祸去世。叶修加入嘉世,获得三连冠,第四年苏沐秋的妹妹苏沐橙继承了哥哥的角色,站到了叶修的身边。然而风格理念的不同,让叶修与战队之间的矛盾越来越大,战队成绩下滑,到了第八赛季,嘉世以叶修状态不好为借口,找来新人孙翔接替了叶修的账号卡一叶之秋,叶修被迫退役。退役后的叶修直接去了嘉世对面一家网吧兴欣做网管,兴欣的老板娘陈果也是资深荣耀迷。叶修不甘就此浮沉,用十年前苏沐秋留下的散人账号卡君莫笑和一把自制银武千机伞,以散人的深粉开始在网游里征程。他从网游开始,打材料做武器,与各家公会周旋,不轻言放弃,并收获了唐柔、包子、罗辑、乔一帆、魏琛、安文逸、莫凡等队友,组成兴欣战队。兴欣从挑战赛开始,一路向前进,获得挑战赛冠军后,嘉世面对媒体质疑,直接关门却没有倒闭,由叶修的徒弟邱非担任队长,嘉世没有倒。而叶修带领兴欣,斩杀常规赛,在季后赛淘汰霸图,最终打败轮回获得了荣耀联赛第十届的冠军,而叶修也在联赛中获得了个人赛37连胜的辉煌战绩。霸图:队长韩文清与叶修是十年对手,第八赛季全明星周末,韩文清一眼看出是叶修在台上使用出龙抬头,并直言“我等你回来”。霸图在第四赛季打败当时三连冠的嘉世,获得第四赛季冠军。曾经霸图与嘉世是死敌,而现在,霸图与兴欣是死敌,只要叶修在的地方,总是霸图粉仇恨聚集地。蓝雨:兴欣魏琛曾是蓝雨第一任队长,被带出来的徒弟喻文州所打败。喻文州和黄少天与叶修关系都很好,尤其黄少天,第八赛季还与叶修一起刷过新区的副本记录。微草:队长王杰希第三赛季出道,以魔术师打法著称,后发现该打法不适合战队,遂改之,并获得两个冠军。兴欣乔一帆曾是微草一员,因发展方向不对,在微草没能得到重用,被叶修挖到兴欣,开始大放光芒。轮回:队长周泽楷不善言辞,有现任荣耀第一人之称,长相帅气,但在第十赛季季后赛个人赛遇叶修惜败。差不多就是以上这些,打字累死了_(:з」)_www.zgxue.com防采集请勿采集本网。

一、开发时管理数据库遇到的问题:

中华人民共和国首都 1949年9月27日,中国人民政治协商会议第一届全体会议一致通过中华人民共和国的国都定于北平,即日起北平改名北京。中国的政区 根据《中华人民共和国宪法》规定,中华人民

现在开发一般都是团队开发,这样就会出现项目同步的问题,代码同步可以通过SVN工具管理起来,那数据库同步怎么办呢?理想的情况下,在开发新项目的时候会首先把业务理清楚,把数据库表设计好,然后将数据库交给专门的人员维护,也就不存在数据库同步的问题了。但实际情况呢?需求从项目开始到项目结束一直在变,很多公司就没有专门的数据库维护人员,数据库大家都在操作,都在修改,如果团队之间沟通及时还好,大家每次更新代码后顺便也更新一下数据库,如果沟通不及时,呵呵(大家自行脑补)。。。这样数据库不同步的问题就凸显出来了。

三潭印月,是浙江杭州西湖十景之一,被誉为“西湖第一胜境”。三潭印月是西湖中最大的岛屿,风景秀丽、景色清幽,尤三潭印月的景观享誉中外。主要景点有“开网亭”、“闲放台”、“先贤祠”、

二、Flyway 的简单介绍:

如果平时大家不去注意的话我相信大家很难注意到垫圈这个东西,说不定还会问我垫圈是个什么东西,不过也确实是这样因为垫圈的体型比较小而且大都与螺丝啊或者铁环之类的东西相组合使用,即使大

1、概念:

Flyway是独立于数据库的应用、管理并跟踪数据库变更的数据库版本管理工具。用通俗的话讲,Flyway可以像SVN管理不同人的代码那样,管理不同人的sql脚本,从而做到数据库同步。

开始大量使用青砖包砌城墙内外壁,以增加墙身的坚固程度。蓟镇长城的城墙大都用条石做基础,上面用 规整统一的城砖,垒砌内外两壁和顶部,内外壁之间用碎砖、砾石和黄土层层夯实。城墙基础底部,一般 深入

2、支持的数据库类型:

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 Phoenix。

3、sql脚本的命名规范:

V+版本号(版本号的数字间以"."或"_"分隔开)+双下划线(用来分隔版本号和描述)+文件描述+后缀名,例如:V2017.9.30__Update.sql。

注:版本号不能相同!

4、Flyway读取sql脚本的默认位置:

项目的源文件夹下的db/migration目录。

5、指令:

一共就6个基本指令:migrate、clean、info、validate、baseline、repair。

三、Flyway 的优势:

1、不仅支持sql 脚本,还支持Java 代码直接操作数据库(flyway-core-x.x.x.jar);

2、有Maven 插件;

3、支持命令行;

4、与Spring 框结合,很方便地实现应用启动时自动检查并升级数据库的功能。

四、Flyway命令行工具的使用:

1、解压下载flyway-commandlin 版本并解压到本地,结构图如下:

  

  2、将sql脚本放在Flyway默认的db/migration目录下,如果放在其他位置需要修改conf/flyway.conf文件中的flyway.locations。

3、根据自己的情况修改conf/flyway.conf文件中的flyway.url、flyway.user、flyway.password。

4、在命令行执行migrate命令。

五、与Maven项目结合使用:

1、引入依赖坐标:

<!-- flyway --> <dependency> <groupId>org.flywaydb</groupId> <artifactId>flyway-core</artifactId> <version>4.2.0</version> <dependency>

2、在src/main/resources目录下建立存放sql版本文件的路径dataBase/sqlite(也可以写默认路径db/migration),并将sql文件放在下面。

3、增加flyway的java类:

package com.xxxxxx.flyway; import javax.sql.DataSource; import org.flywaydb.core.Flyway; public class MigrationSqlite { private DataSource dataSource; public void setDataSource(DataSource dataSource) { this.dataSource = dataSource; } public void migrate() { //初始化flyway类 Flyway flyway = new Flyway(); //设置加载数据库的相关配置信息 flyway.setDataSource(dataSource); //设置存放flyway metadata数据的表名,默认"schema_version",可不写 flyway.setTable("SCHMA_VERSION"); //设置flyway扫描sql升级脚本、java升级脚本的目录路径或包路径,默认"db/migration",可不写 flyway.setLocations("dataBase/sqlite"); //设置sql脚本文件的编码,默认"UTF-8",可不写 flyway.setEncoding("UTF-8"); flyway.migrate(); } }

4、在spring中实例化第3步的java类:

<bean id="MigrationSqlite" class="com.xxxxxx.flyway.MigrationSqlite" init-method="migrate"> <property name="dataSource" ref="dataSource"></property> </bean>

从上面的bean 定义中我们可以看到,我们为flywayMigration 这个bean 实例注入了一个数据源,Flyway 的所有操作将针对这个数据源进行;同时我们通过init-method 属性指定了Spring 在实例化该bean 以后,主动执行该bean 的migrate 方法,而该方法内会执行Flyway 更新数据库的操作。至此,我们达到了在应用启动时,Spring 实例化上下文的时候,在Spring 实例化flywayMigration 这个bean 的时候,自动执行Flyway 更新数据库的操作。

5、处理Flyway 更新数据库和代码逻辑操作数据库时的冲突(自己目前没遇到,网上找到的,先留着备不时之需):

如果Flyway 还在更新数据库,没有完成更新操作之前,应用程序的其他逻辑已经开始使用数据库进行其他操作了,会导致应用程序产生很多bug ,甚至根本运行不起来。要解决这个问题,我们可以利用Spring 的bean 依赖原理,让关键的数据库操作bean 依赖于flywayMigration 这个bean ,达到在flywayMigration 没有实例化完成(数据库更新操作完成)之前,不能进行任何其他数据库相关操作。

<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean" depends-on="MigrationSqlite"> <property name="dataSource" ref="dataSource" /> </bean>

这样,每次启动项目时就会自动更新数据库,不必在为数据库不同步烦恼了。

参考文章:1、https://flywaydb.org/documentation/ (官网)

2、http://casheen.iteye.com/blog/1749916

3、http://shuzheng5201314.iteye.com/blog/2044517

4、https://www.zgxue.com/article/191708.htm

到此这篇关于Flyway的简单介绍及使用的文章就介绍到这了,更多相关Flyway的简单介绍及使用内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

JSON:JavaScript 对象表示法(JavaScript Object Notation)。JSON 是存储和交换文本信息的语法。类似 XML。JSON 比 XML 更小、更快,更易解析。更多json介绍及json工具参考:http://www.ecjson.com/jsons内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • 快速掌握和使用flyway的详细教程
  • 深入浅析java中flyway使用简介
  • spring boot项目使用flyway的详细教程
  • java 中flyway的使用详解
  • 浅谈springboot之开启数据库迁移的flyway使用
  • 详解spring boot中使用flyway来管理数据库版本
  • 详解vscode自动补全css3前缀插件以及配置无效的解决办法
  • typora+picgo+github实现md自带图床效果
  • 编程界主流脚本编程语言的比较和选择
  • 基于laravel + vue + element 实现 人力资源系统(考勤应用 )
  • 2019最新系统学习路线零基础如何转行大数据
  • 5个linux平台程序员最爱的开发工具汇总
  • 提示“处理url时服务器出错”和“http 500错误“的解决方法
  • 如何将服务器上的python代码通过qq发送回传信息(附实现方法)
  • csv文件容错处理方法
  • springboot + vue + electron 开发 qq 版聊天工具的详细教程
  • json的简单介绍及基本使用
  • 关于全职高手的简单介绍
  • 求office各种功能的简要介绍和使用方法!??
  • 故宫的简单介绍?
  • 中国的简单介绍。
  • 三潭印月的简单介绍
  • 橡胶垫圈材质及分类的简单介绍
  • 简单的介绍一下黄河
  • 长城城墙的简单介绍
  • 蜂鸟的简单介绍
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全javascriptasp.netphp编程ajax相关正则表达式asp编程jsp编程编程10000问css/htmlflex脚本加解密web2.0xml/rss网页编辑器相关技巧安全相关网页播放器其它综合dart首页快速掌握和使用flyway的详细教程深入浅析java中flyway使用简介spring boot项目使用flyway的详细教程java 中flyway的使用详解浅谈springboot之开启数据库迁移的flyway使用详解spring boot中使用flyway来管理数据库版本详解vscode自动补全css3前缀插件以及配置无效的解决办法typora+picgo+github实现md自带图床效果编程界主流脚本编程语言的比较和选择基于laravel + vue + element 实现 人力资源系统(考勤应用 )2019最新系统学习路线零基础如何转行大数据5个linux平台程序员最爱的开发工具汇总提示“处理url时服务器出错”和“http 500错误“的解决方法如何将服务器上的python代码通过qq发送回传信息(附实现方法)csv文件容错处理方法springboot + vue + electron 开发 qq 版聊天工具的详细教程最新idea2020注册码永久激活(激活intellij idea2020永久破解,亲测intellij idea激活码获取方法(i删除svn三种方法delsvn(windows+c/s和b/s两种架构的概念、区别和网址(url)支持的最大长度是多少5个linux平台程序员最爱的开发工url中斜杠/和反斜杠\的区别小结提示“处理url时服务器出错”和“矩形相交以及求出相交的区域的原理解析最新idea2020注册码永久激活(激活到2100年详细介绍http cookievscode添加git和svn的方法示例tiobe编程语言排行榜前20的语言入门书籍推微信支付--签名错误问题的解决方法12个常用前端ui框架集合汇总多种语言(big5\gbk\gb2312\utf8\shift_jihadoop迁移数据应用实例详解动态语言、动态类型语言、静态类型语言、
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved