`
sillycat
  • 浏览: 2551269 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Flyway for DB

 
阅读更多

Flyway for DB

1. Command Tool
1.1 Command Tool with H2 DB demo
Find and download the flyway-commandline-2.3.zip, unzip and put it in the working directory.
>cd /opt/flyway
>cd jars
>wget http://repo1.maven.org/maven2/com/h2database/h2/1.3.170/h2-1.3.170.jar

Just download the driver and place them in the jars directory

Just use H2 for demo, set up the configuration file like this
>vi conf/flyway.properties
flyway.url=jdbc:h2:file:./foobardb
flyway.user=SA

Put the first SQL migration under sql
>vi sql/V1__Create_person_table.sql
create table PERSON (        ID int not null,        NAME varchar(100) not null );

The first letter should be V, can not be v.

>./flyway migrate
/opt/local/bin/tput Flyway (Command-line Tool) v.2.3 Current version of schema "PUBLIC": << Empty Schema >> Migrating schema "PUBLIC" to version 1 Successfully applied 1 migration to schema "PUBLIC" (execution time 00:00.104s).

Adding a second migration
sparkworker1:flyway carl$ cat sql/V2__Add_people.sql insert into PERSON (ID, NAME) values (1, 'Axel'); insert into PERSON (ID, NAME) values (2, 'Mr. Foo'); insert into PERSON (ID, NAME) values (3, 'Ms. Bar');

1.2 Let us play with MySql
Download the jar from the official website
>wget http://cdn.mysql.com/Downloads/Connector-J/mysql-connector-java-5.1.29.tar.gz
Find and place the jar mysql-connector-java-5.1.29-bin.jar  under the jars directory.

Edit the configuration file
>vi conf/flyway.properties
flyway.url=jdbc:mysql://localhost:3306/test
flyway.user=root
flyway.password=

>flyway migrate

There are a lot of other command parameters I can use. For example, clean, migrate, validate, info, repair

2. Flyway DB for SBT
First of all, if I want to use flyway plugin, I need to update my sbt version to 1.13.0 to support the latest version.
Check this file 
>cat project/build.properties sbt.version=0.13.0

And update the version of my other plugins to support the sbt 0.13
>cat project/plugins.sbt addSbtPlugin("com.googlecode.flyway" % "flyway-sbt" % "2.3") resolvers += "Flyway" at "http://flywaydb.org/repo" addSbtPlugin("io.spray" % "sbt-revolver" % "0.7.1") addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.10.2") addSbtPlugin("com.typesafe.sbt" % "sbt-scalariform" % "1.3.0") addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.2.0") resolvers += "Sonatype snapshots" at "http://oss.sonatype.org/content/repositories/snapshots/" addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.5.0-SNAPSHOT")

Check the build.sbt to make sure the flyway configuration
import com.googlecode.flyway.sbt.FlywayPlugin._
//flyway start
seq(flywaySettings: _*)

flywayUrl := "jdbc:h2:~/demo_test;DB_CLOSE_DELAY=-1"

flywayUser := "sa"

flywayPassword := "password"

//flyway end

And place the migration files in the directory like these>

src/main/resources/db/migration/V1__Create_person_table.sql
src/main/resources/db/migration/V2__Add_people.sql

create table PERSON (
    ID int not null,
    NAME varchar(100) not null
);

insert into PERSON (ID, NAME) values (1, 'Axel');
insert into PERSON (ID, NAME) values (2, 'Mr. Foo');
insert into PERSON (ID, NAME) values (3, 'Ms. Bar');

Run the command to migrate the DB
>sbt flywayMigrate

There are also other commands flywayClean, flywayInit, flywayMigrate, flywayValidate, flywayInfo, flywayRepair

References:
http://flywaydb.org/getstarted/firststeps/commandline.html

http://flywaydb.org/getstarted/firststeps/sbt.html

http://flywaydb.org/documentation/sbt/


分享到:
评论

相关推荐

    flyway-springboot.zip_springboot集成flyway数据库版本管理工具

    这里,`locations`属性指定了存放SQL脚本的目录,通常在`src/main/resources/db/migration`下,文件命名遵循Flyway的约定,如`V1__Initial_schema.sql`,其中`V1`表示版本号,`__`后是描述。 集成完成后,启动...

    SpringBoot整合flyway实现步骤解析

    SpringBoot整合Flyway实现数据库版本控制 在软件开发中,数据库的版本控制是非常重要的一步骤。Flyway是一个流行的数据库版本控制工具,它可以与SpringBoot框架集成,以实现自动化的数据库版本控制。在本文中,我们...

    flyway-commandline

    Flyway是一款强大的数据库版本管理工具,它以Java为基础,旨在帮助开发者和运维人员有效地管理和维护数据库的演变。在软件开发过程中,随着项目的发展,数据库结构也会随之改变,这些变化需要被系统地记录和管理,...

    flyway简单测试工程

    【Flyway:数据库版本管理利器】 Flyway是一款强大的开源数据库版本管理工具,它使得数据库的迁移变得简单且有序。在“flyway简单测试工程”中,我们可以通过实践来理解其核心概念和工作流程,这对于数据库的开发...

    SpringBoot集成Flyway.zip

    spring.flyway.locations=classpath:/db/migration ``` 一旦配置完成,SpringBoot启动时,Flyway会自动检测并执行未运行的SQL脚本,从而更新数据库。在这个例子中,`by_testLog`可能是一个日志相关的数据库表或者...

    SpringBoot项目中配置Flyway.docx

    * 增加sql脚本:在resource下的db/migration文件夹中增加sql脚本文件 使用Flyway需要注意以下几点: * 开发人员必须要确保代码和数据库版本相统一 * 需要同步提交新代码和相应的sql脚本 * 对数据库表的变更要通过...

    flyway-6.4.2.rar

    1、解压flyway-commandline-6.4.2-linux-x64.tar.gz或flyway-commandline-6.4.2-windows-x64.zip包; 2、把path目录里的lib目录拷贝到解压目录里进行覆盖; 覆盖lib/community/flyway-core-6.4.2.jar包是去除不...

    kingbase-flyway

    kingbase 数据库 flyway 插件,导入此jar在依赖 flyway-8.5.13.jar 版本即可,人大金仓 数据库 国产数据库

    数据库版本控制Flyway的demo

    2. **指定迁移脚本位置**:Flyway默认查找`src/main/resources/db/migration`目录下的脚本,但可以自定义这个路径。 3. **其他配置**:例如,是否自动迁移、是否忽略未知迁移、错误处理策略等。 ### 使用...

    flyway数据库版本管理

    ### Flyway数据库版本管理 #### 一、Flyway介绍 Flyway是一款强大的开源数据库版本管理工具,它采用了“规约优于配置”的设计理念。这一理念强调的是通过预设的行为模式简化配置,减少错误的可能性,使开发者能够...

    springboot 整合 flyway

    spring.flyway.locations=classpath:/db/migration ``` `locations`属性指定了存放迁移脚本的目录。 **2.3 自动迁移** SpringBoot启动时,Flyway会自动执行所有未应用的迁移。你可以通过设置`spring.flyway....

    flyway 5.1.1-windows 数据库升级降级工具

    Flyway 是一个开源的数据库版本控制工具,专为管理数据库迁移而设计。它允许开发者以结构化和自动化的方式处理数据库的版本升级和降级,从而确保数据库与应用程序代码的同步。在本例中,我们讨论的是Flyway 5.1.1 的...

    flyway-4.0.3数据库执行工具

    Flyway是一款开源的数据库版本控制工具,用于管理数据库版本,帮助开发者进行数据库迁移。在数据库应用开发中,随着项目的迭代,数据库结构的变化是不可避免的,Flyway提供了一种规范化的、自动化的方式来跟踪、管理...

    flyway支持人大金仓数据库jar包

    基于flyway的6.5.7版本修改flway-core ,支持国产数据库,暂时处于自测阶段,使用连接kingbase进行管理正常。

    flyway-docker:Dockerized flyway命令行工具

    用法跑步: docker run --rm -v /path/to/your/migrations:/sql -e FLYWAY_CMD=migrate -e DB_USER=postgres -e DB_PASSWORD=postgres -e DB_URL=jdbc:postgresql://db_host/db_name iterators/flyway-docker -e DB_...

    flyway-commandline-6.4.2-windows-x64.zip

    Flyway 是一款开源的数据库版本管理工具,它更倾向于规约优于配置的方式。Flyway 可以独立于应用实现管理并跟踪数据库变更,支持数据库版本自动升级,并且有一套默认的规约,不需要复杂的配置,Migrations 可以写成 ...

    flyway-commandline-6.4.2-linux-x64.tar.gz

    Flyway 是一款开源的数据库版本管理工具,它更倾向于规约优于配置的方式。Flyway 可以独立于应用实现管理并跟踪数据库变更,支持数据库版本自动升级,并且有一套默认的规约,不需要复杂的配置,Migrations 可以写成 ...

    flyway-maven-plugin:Flyway Maven 插件

    flyway-maven-plugin flyway maven plugin 是基于flyway的的数据库脚本升级插件 使用方式 1. 在resources下创建application.propeties,存放数据库相关配置 #default表示数据源的名字 db.default.url=jdbc:mysql://...

    springboot集成flyway实现数据库版本自动升级及冲突问题解决

    springboot集成flyway实现数据库版本自动升级及冲突问题解决,灵活实现升级语句的自主执行

    Java基础学习总结(183)—— Flyway 在项目中迁移数据实践.pdf

    在Maven或Gradle的配置文件中添加相应的依赖项,然后在项目的资源目录下创建一个特定的目录(通常是`db/migration`),用于存放各个版本的DDL脚本。每个脚本的文件名应遵循Flyway的命名规则,例如`V1__Initial_...

Global site tag (gtag.js) - Google Analytics