- 浏览: 1053798 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1441)
- 软件思想&演讲 (9)
- 行业常识 (250)
- 时时疑问 (5)
- java/guava/python/php/ruby/R/scala/groovy (213)
- struct/spring/springmvc (37)
- mybatis/hibernate/JPA (10)
- mysql/oracle/sqlserver/db2/mongdb/redis/neo4j/GreenPlum/Teradata/hsqldb/Derby/sakila (268)
- js/jquery/jqueryUi/jqueryEaseyUI/extjs/angulrJs/react/es6/grunt/zepto/raphael (81)
- ZMQ/RabbitMQ/ActiveMQ/JMS/kafka (17)
- lucene/solr/nuth/elasticsearch/MG4J (167)
- html/css/ionic/nodejs/bootstrap (19)
- Linux/shell/centos (56)
- cvs/svn/git/sourceTree/gradle/ant/maven/mantis/docker/Kubernetes (26)
- sonatype nexus (1)
- tomcat/jetty/netty/jboss (9)
- 工具 (17)
- ETL/SPASS/MATLAB/RapidMiner/weka/kettle/DataX/Kylin (11)
- hadoop/spark/Hbase/Hive/pig/Zookeeper/HAWQ/cloudera/Impala/Oozie (190)
- ios/swift/android (9)
- 机器学习&算法&大数据 (18)
- Mesos是Apache下的开源分布式资源管理框架 (1)
- echarts/d3/highCharts/tableau (1)
- 行业技能图谱 (1)
- 大数据可视化 (2)
- tornado/ansible/twisted (2)
- Nagios/Cacti/Zabbix (0)
- eclipse/intellijIDEA/webstorm (5)
- cvs/svn/git/sourceTree/gradle/jira/bitbucket (4)
- jsp/jsf/flex/ZKoss (0)
- 测试技术 (2)
- splunk/flunm (2)
- 高并发/大数据量 (1)
- freemarker/vector/thymeleaf (1)
- docker/Kubernetes (2)
- dubbo/ESB/dubboX/wso2 (2)
最新评论
前言:最近工作上遇到个问题,项目开发过程中,开发代码可以通过svn来版本控制,但数据库又该如何来管理呢?多个人接触数据库,当对表、字段或数据修改后,又怎么来同步呢?经过苦寻,发现了个叫flyway的开源项目:http://flywaydb.org/,java编写,官方的介绍就是我的初衷,岂能不心动?
官网是英文的,查了下居然没有中文文档,难道没有中国人用?
慢慢看了下官方文档,试着做了下,一次成功!(离开电脑,蹦达几下,继续坐回电脑)
自己写个小教程吧
1、将flyway-core-2.3.jar放到项目lib中,下载地址:http://flywaydb.org/getstarted/download.html
2、在src目录下建立保存sql版本文件的路径:src/db/migration,flyway默认查找路径,可以改,但没必要。
3、在sql版本文件路径中增加sql文件,命名规则,如:V1__2014_4_13.sql ,V开头+版本号+双下划线+描述,描述中可以有下划线,后缀为sql。别问能不能修改这个规则,否则,我咬你。
4、增加flyway的java类,有命令行工具,但还是java类用起来方便,如下:
Java代码 复制代码 收藏代码
1.package com.cms.flyway;
2.
3.import java.io.IOException;
4.import java.util.Properties;
5.
6.import com.googlecode.flyway.core.Flyway;
7.
8.public class FlywayApp {
9.
10. // 读取数据库配置参数
11. private static Properties config = new Properties();
12. static {
13. try {
14. config.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("activerecord.properties"));
15. } catch (IOException e) {
16. e.printStackTrace();
17. }
18. }
19.
20. // 执行数据库版本升级
21. public static void migration() {
22. // Create the Flyway instance
23. Flyway flyway = new Flyway();
24.
25. // Point it to the database
26. flyway.setDataSource(config.getProperty("com.et.ar.ActiveRecordBase.url"), config.getProperty("com.et.ar.ActiveRecordBase.username"), config.getProperty("com.et.ar.ActiveRecordBase.password"));
27. flyway.setInitOnMigrate(true);
28.
29. // Start the migration
30. flyway.migrate();
31. }
32.}
5、在服务器启动的时候或者定时器 执行该类的migration()方法即可。
6、第一次执行会生成一个专门存放数据库schema_version的表
7、以后数据库有了新的改动,导出新版本sql文件(如:mysqldump -u -p databasename>/xx.sql)改为新版本命名文件放到db.migration路径下,flyway会自动帮你更新数据库版本的。
官网是英文的,查了下居然没有中文文档,难道没有中国人用?
慢慢看了下官方文档,试着做了下,一次成功!(离开电脑,蹦达几下,继续坐回电脑)
自己写个小教程吧
1、将flyway-core-2.3.jar放到项目lib中,下载地址:http://flywaydb.org/getstarted/download.html
2、在src目录下建立保存sql版本文件的路径:src/db/migration,flyway默认查找路径,可以改,但没必要。
3、在sql版本文件路径中增加sql文件,命名规则,如:V1__2014_4_13.sql ,V开头+版本号+双下划线+描述,描述中可以有下划线,后缀为sql。别问能不能修改这个规则,否则,我咬你。
4、增加flyway的java类,有命令行工具,但还是java类用起来方便,如下:
Java代码 复制代码 收藏代码
1.package com.cms.flyway;
2.
3.import java.io.IOException;
4.import java.util.Properties;
5.
6.import com.googlecode.flyway.core.Flyway;
7.
8.public class FlywayApp {
9.
10. // 读取数据库配置参数
11. private static Properties config = new Properties();
12. static {
13. try {
14. config.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("activerecord.properties"));
15. } catch (IOException e) {
16. e.printStackTrace();
17. }
18. }
19.
20. // 执行数据库版本升级
21. public static void migration() {
22. // Create the Flyway instance
23. Flyway flyway = new Flyway();
24.
25. // Point it to the database
26. flyway.setDataSource(config.getProperty("com.et.ar.ActiveRecordBase.url"), config.getProperty("com.et.ar.ActiveRecordBase.username"), config.getProperty("com.et.ar.ActiveRecordBase.password"));
27. flyway.setInitOnMigrate(true);
28.
29. // Start the migration
30. flyway.migrate();
31. }
32.}
5、在服务器启动的时候或者定时器 执行该类的migration()方法即可。
6、第一次执行会生成一个专门存放数据库schema_version的表
7、以后数据库有了新的改动,导出新版本sql文件(如:mysqldump -u -p databasename>/xx.sql)改为新版本命名文件放到db.migration路径下,flyway会自动帮你更新数据库版本的。
发表评论
-
研发管理工具
2017-08-09 15:26 488一、产品介绍 JIRA是Atlas ... -
webstorm的html文件如何不折叠style?
2016-06-27 17:16 664webstorm的html文件如何不 ... -
持续集成工具的发展历程以及未来
2016-04-24 01:08 656持续集成工具的发展历程以及未来 原创 2016-04- ... -
maven POM.xml 标签详解
2016-01-04 00:25 744<span style="margin: 0 ... -
mvn的常用命令
2016-01-04 00:26 10061. mvn help:describe 你是否因为记不清 ... -
maven的assemble的使用
2016-01-04 00:27 1026在开发Maven项目中,我们可能有各种各样的打包需求,当然 ... -
Gradle是一款非常简洁的项目构建工具
2016-01-03 00:01 808Gradle是一款非常简洁的项目构建工具,相比ant和ma ... -
Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器
2016-01-15 10:31 628Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编 ... -
Markdown的语法简洁明
2016-01-22 14:29 831GitBook[1] 是一个基于 Node.js 的命令行工 ... -
eclipse的使用
2015-12-31 12:01 467eclipse的快捷键 Ctrl + Shift + X 将小 ... -
Stack Overflow
2015-12-30 10:55 572Stack Overflow是一个与程序相关的IT技术问答网站 ... -
Gradle的使用
2015-12-29 20:16 1201工具版本:Gradle:2.2.1 Groovy:2.3.6 ... -
Gradle和Maven
2015-12-29 19:38 562Gradle和Maven都是项目自动构建工具,编译源代码只是整 ... -
maven出现感叹号
2015-12-16 14:51 549maven出现感叹号的原因 产生原因: 因为一些maven管 ... -
Gradle项目构建工具
2015-12-10 01:02 690Gradle是一款非常简洁的项目构建工具,相比ant和mave ... -
使用的工具
2015-11-30 15:31 4471.Fiddler是一个http协议调试代理工具,它能够记录并 ...
相关推荐
"flyway使用简介" Flyway是一个独立于数据库的应用、管理并跟踪数据库变更的数据库版本管理工具。它提供了一个简单的方式来管理和跟踪数据库变更,确保数据库版本的一致性。 Flyway的基本命令 Flyway主要基于6种...
浅谈SpringBoot之开启数据库迁移的FlyWay使用 SpringBoot是一种流行的Java框架,用于构建web应用程序。随着项目的发展,数据库迁移变得越来越重要。Flyway是一个流行的数据库迁移库,提供了一种简单、灵活的方式来...
2. **迁移脚本**:Flyway使用命名约定的SQL脚本来表示数据库的迁移。例如,`V1__Initial_schema.sql` 表示第一个迁移,创建初始数据库架构。脚本中的`V`表示版本,`__`后是描述。 3. **命令行工具**:Flyway提供了...
Spring Boot 中使用 Flyway 管理数据库版本 在实际开发中,我们经常会遇到数据库版本管理的问题。由于系统的程序版本可以通过 Git 得到的很好的版本控制,而数据库结构并没有。尽管我们可以通过 Git 进行语句的版本...
在使用Flyway之前,我们需要在pom.xml文件中引入Flyway的依赖项,如下所示: ```xml <groupId>org.flywaydb <artifactId>flyway-core ``` 二、配置Flyway 在SpringBoot应用程序中,我们需要配置Flyway,...
在Spring Boot框架中,默认封装了Flyway,只需要简单的配置就可以使用,其使用遵循Spring Boot框架的“约定优于配置”的思想。 Flyway的主要特点: * 独立于应用实现并管理数据库变更 * 支持数据库版本自动升级 * ...
Spring Boot,作为流行的Java应用框架,提供了与Flyway的无缝集成,使得在Spring Boot项目中使用Flyway变得更加便捷。本篇将详细介绍Spring Boot集成Flyway进行数据库版本管理的过程及相关的知识点。 首先,让我们...
1. **版本控制**:Flyway使用版本号来追踪数据库的变更,每个版本对应一个或多个SQL脚本。版本号遵循`V+版本号+__+描述`的命名规则,如`V2017.9.30__Update.sql`,确保唯一性。 2. **脚本存储**:默认情况下,...
【Flyway:数据库版本管理利器】 Flyway是一款强大的开源数据库版本管理工具,它使得数据库的迁移变得简单且有序。...在实际项目中,结合标签“flyway demo”,我们可以参考此工程,快速上手并熟练掌握Flyway的使用。
标签"flyway"和"commandline"进一步强调了我们关注的是使用命令行操作Flyway。在实际应用中,你可以通过输入一系列命令来执行诸如迁移(migrate)、清洁(clean)、信息(info)等操作,对数据库进行版本控制。 在...
1. **初始化**:使用`flyway clean`命令清空所有迁移历史,`flyway init`命令创建一个初始的迁移版本。 2. **迁移**:使用`flyway migrate`命令应用所有未执行的迁移脚本,更新数据库。 3. **回滚(降级)**:如果...
1、解压flyway-commandline-6.4.2-linux-x64.tar.gz或flyway-commandline-6.4.2-windows-x64.zip包; 2、把path目录里的lib目录拷贝到解压... lib下的其它jar包是为了在命令行情况下可以使用logback方式进行打印日志;
Flyway允许用户使用SQL脚本或Java代码编写迁移脚本(Migrations),不仅支持命令行(Command Line)和Java API接口,还能集成到各种构建工具(如Maven、Gradle)及框架(例如Spring Boot)中。这使得它能够在分布式...
kingbase 数据库 flyway 插件,导入此jar在依赖 flyway-8.5.13.jar 版本即可,人大金仓 数据库 国产数据库
- **版本管理**:Flyway使用版本号来追踪数据库的状态,每个迁移对应一个特定的版本,这样可以确保数据库始终处于已知的、一致的状态。 - **SQL脚本**:Flyway支持使用SQL脚本来执行数据库的迁移,这些脚本按照...
基于flyway的6.5.7版本修改flway-core ,支持国产数据库,暂时处于自测阶段,使用连接kingbase进行管理正常。
3. **初始化**:在初次使用Flyway时,可以创建一个特殊的迁移`V1__initial_schema.sql`,用于设置数据库的初始状态。这个脚本会在数据库中创建必要的表,如`schema_version`,用于存储Flyway的元数据。 4. **命令行...
- `spring.flyway.encoding`: Flyway使用的字符编码。 - `spring.flyway.baseline-on-migrate`: 是否在迁移时设置基线。 - `spring.flyway.locations`: 定义数据库脚本的位置。 5. **总结** 使用Flyway简化...
- **Java Migration**:除了SQL脚本,Flyway也支持使用Java类进行数据库迁移。创建Java类并实现`org.flywaydb.core.api.migration.jdbc.JdbcMigration`接口,Flyway会在适当的时候调用这些类。 - **Repeatable ...
本Demo将详细介绍如何使用Flyway进行数据库版本控制。 Flyway的核心概念是迁移(Migrations),每个迁移代表数据库的一个版本变化。通过应用一系列有序的迁移,Flyway可以帮助开发者跟踪和管理数据库的结构变更,如...