Flyway Overview and Installation

https://flywaydb.org/documentation/

Flyway is an open-source database migration tool. It strongly favors simplicity and convention over configuration.

It is based around just 7 basic commands: Migrate, Clean, Info, Validate, Undo, Baseline and Repair.

Migrations can be written in SQL (database-specific syntax (such as PL/SQL, T-SQL, ...) is supported) or Java (for advanced data transformations or dealing with LOBs).

It has a Command-line client. If you are on the JVM, we recommend using the Java API (also works on Android) for migrating the database on application startup. Alternatively, you can also use the Maven plugin or Gradle plugin.

And if that not enough, there are plugins available for Spring Boot, Dropwizard, Grails, Play, SBT, Ant, Griffon, Grunt, Ninja and more!

Supported databases are Oracle, SQL Server (including Amazon RDS and Azure SQL Database, DB2, MySQL (including Amazon RDS, Azure Database & Google Cloud SQL), Aurora MySQL, MariaDB, Percona XtraDB Cluster, PostgreSQL (including Amazon RDS, Azure Database, Google Cloud SQL & Heroku), Aurora PostgreSQL, Redshift, CockroachDB, SAP HANA, Sybase ASE, Informix, H2, HSQLDB, Derby and SQLite.

https://flywaydb.org/documentation/commandline/#download-and-installation

类似于Powershell的发布,Flyway也提供了stable和preview两种版本

Command-line tool

The Flyway command-line tool is a standalone Flyway distribution. It runs on Windows, macOS and Linux and it is primarily meant for users who wish to migrate their database from the command-line without having to integrate Flyway into their applications nor having to install a build tool.

Download and installation

Select the platform that you need.

Each download contains all editions (community, pro, enterprise) of Flyway.

Directory structure

The Flyway download, once extracted, now becomes a directory with the following structure:

 flyway-5.2.4
   conf
     flyway.conf  configuration file
   drivers         JDBC drivers
   jars            Java-based migrations (as jars)
   jre
   lib
   licenses
   sql             SQL migrations
   flyway         macOS/Linux executable
   flyway.cmd     Windows executable

Usage

> flyway [options] command

Flyway editions

The Flyway Command-line tool distribution ships with all editions of Flyway.

It defaults to Flyway Community Edition.

It can however easily be configured to run the Flyway Pro or Enterprise Edition instead.

Environment variable

One way to switch between the various Flyway editions is to set the FLYWAY_EDITION environment variable prior to executing Flyway to any of the following values:

community Select the Flyway Community Edition (default)
pro Select the Flyway Pro Edition
enterprise Select the Flyway Enterprise Edition

Edition-selecting flags

Alternatively Flyway also comes with edition-selecting flags.

By default the flyway command will launch whatever edition has been selected with the FLYWAY_EDITION environment variable (defaulting to community).

You can however also use edition-selecting flags to force the selection of the edition of your choice and avoid the need to set any environment variable at all:

-community Select the Flyway Community Edition
-pro Select the Flyway Pro Edition
-enterprise Select the Flyway Enterprise Edition

Commands

Name Description
migrate Migrates the database
clean Drops all objects in the configured schemas
info Prints the details and status information about all the migrations
validate Validates the applied migrations against the ones available on the classpath
baseline Baselines an existing database, excluding all migrations up to and including baselineVersion
repair Repairs the schema history table

JDBC drivers

In order to connect with your database, Flyway needs the appropriate JDBC driver to be available in its drivers directory.

Flyway ships with JDBC drivers for the following databases by default:

  • Aurora MySQL
  • Aurora PostgreSQL
  • CockroachDB
  • Derby
  • H2
  • HSQLDB
  • MariaDB
  • MySQL
  • Percona XtraDB
  • PostgreSQL
  • SQLite
  • SQL Server
  • Sybase ASE

If your database is not listed here, you need to download its JDBC driver and place it in the drivers directory yourself.

Instructions on where to download the drivers from are provided on the respective documentation pages for each database.

Configuration

The Flyway Command-line tool can be configured in a wide variety of ways.

You can use config files, environment variables and command-line parameters.

These different means of configuration can be combined at will.

Config files

Config files are supported by the Flyway command-line tool.

If you are not familiar with them, check out the Flyway config file structure and settings reference first.

Flyway will search for and automatically load the following config files if present:

  • <install-dir>/conf/flyway.conf
  • <user-home>/flyway.conf
  • <current-dir>/flyway.conf

It is also possible to point Flyway at one or more additional config files.

This is achieved by supplying the command line parameter -configFiles= as follows:

flyway -configFiles=path/to/myAlternativeConfig.conf migrate

To pass in multiple files, separate their names with commas:

flyway -configFiles=path/to/myAlternativeConfig.conf,other.conf migrate

Relative paths are relative to the current working directory.

Alternatively you can also use the FLYWAY_CONFIG_FILES environment variable for this. When set it will take preference over the command-line parameter.

> export FLYWAY_CONFIG_FILES=path/to/myAlternativeConfig.conf,other.conf
> flyway migrate

By default Flyway loads configuration files using UTF-8. To use an alternative encoding, use the command line parameter -configFileEncoding= as follows:

> flyway -configFileEncoding=ISO-8859-1 migrate

Alternatively you can also use the FLYWAY_CONFIG_FILE_ENCODING environment variable for this. When set it will take preference over the command-line parameter.

> export FLYWAY_CONFIG_FILE_ENCODING=ISO-8859-1

Environment Variables

To make it easier to work with cloud and containerized environments, Flyway also supports configuration via environment variables.

Check out the Flyway environment variable reference for details.

Command-line Arguments

Finally, Flyway can also be configured by passing arguments directly from the command-line:

> flyway -user=myuser -schemas=schema1,schema2 -placeholders.keyABC=valueXYZ migrate

Overriding order

The Flyway command-line tool has been carefully designed to load and override configuration in a sensible order.

Settings are loaded in the following order (higher items in the list take precedence over lower ones):

  1. Command-line arguments
  2. Environment variables
  3. Custom config files
  4. <current-dir>/flyway.conf
  5. <user-home>/flyway.conf
  6. <install-dir>/conf/flyway.conf
  7. Flyway command-line defaults

The means that if for example flyway.url is both present in a config file and passed as -url= from the command-line, the command-line argument will take precedence and be used.

Credentials

If you do not supply a database user or password via any of the means above, you will be prompted to enter them:

Database user: myuser
Database password:

If you want Flyway to connect to your database without a user or password, you can suppress prompting by adding the -n flag.

Java Arguments

If you need to to pass custom arguments to Flyway’s JVM, you can do so by setting the JAVA_ARGS environment variable.

They will then automatically be taken into account when launching Flyway.

This is particularly useful when needing to set JVM system properties.

Output

All debug, info and warning output is sent to stdout. All errors are sent to stderr.

Debug output

Add -X to the argument list to also print debug output.

Quiet mode

Add -q to the argument list to suppress all output, except for errors and warnings.

原文地址:https://www.cnblogs.com/chucklu/p/10538823.html

时间: 2024-10-12 15:05:34

Flyway Overview and Installation的相关文章

leptonica 学习笔记1

Updated: April 26, 2015 Leptonica is a pedagogically-oriented open source site containing software that is broadly useful for image processing and image analysis applications. Leptonica 是一个面向教学的包含软件的开源站点,此软件对图像处理和图像分析应用十分有用. Featured operations are R

Elasticsearch+Logstash+Kibana安装与使用

ELK可以完成如下功能: l  根据关键字查询日志详情 l  监控系统的运行状况 l  统计分析,比如接口的调用次数.执行时间.成功率等 l  异常数据自动触发消息通知 l  基于日志的数据挖掘 ELK可以实现Splunk 基本功能 Splunk 是机器数据的引擎.使用 Splunk 可收集.索引和利用所有应用程序.服务器和设备(物理.虚拟和云中)生成的快速移动型计算机数据 .从一个位置搜索并分析所有实时和历史数据. 使用 Splunking 处理计算机数据,可让您在几分钟内(而不是几个小时或几

logstash日志收集分析系统elasticsearch&kibana

logstash日志收集分析系统Logstash provides a powerful pipeline for storing, querying, and analyzing your logs. When using Elasticsearch as a backend data store and Kibana as a frontend reporting tool, Logstash acts as the workhorse. It includes an arsenal of

SUSE Linux Enterprise 12 系统安装

[1] Insert an installation media of SLES in CD/DVD drive and restart your computer. After follwoing screen is shown, Select "Installation" to proceed next. [2] Select your language and keyboard layouts. And also check a box "I Agree to the

SUSE Linux Enterprise 11 SP4 系统安装

[1] Insert installation media in CD/DVD drive and restart your computer. Follwoing screen is shown and Click "Installation" to do it. [2] Select your language and keyboard layouts.And also check a box "I Agree to the Lisence Terms" to

Overview of iOS Crash Reporting Tools: Part 2/2

Thanks for joining me for the second part of this two-part series on crash reporting services! The first part introduced you to the architecture of crash reporting services, including storage, symbolication, and server-side management. As well, I pro

P6 EPPM Manual Installation Guide (Oracle Database)

Contents Oracle Database Manual Configuration Overview ,,★★5 Oracle Database Installation ,,★★6 Creating the Database Structure for Oracle and Loading Application Data ,,★★7 Creating the P6 EPPM Database Structure for Oracle ,,★★7 Copying the Script

Apache Sqoop - Overview Apache Sqoop 概述

使用Hadoop来分析和处理数据需要将数据加载到集群中并且将它和企业生产数据库中的其他数据进行结合处理.从生产系统加载大块数据到Hadoop中或者从大型集群的map reduce应用中获得数据是个挑战.用户必须意识到确保数据一致性,消耗生产系统资源,供应下游管道的数据预处理这些细节.用脚本来转化数据是低效和耗时的方式.使用map reduce应用直接去获取外部系统的数据使得应用变得复杂和增加了生产系统来自集群节点过度负载的风险. 这就是Apache Sqoop能够做到的.Aapche Sqoop

Installation and Upgrading

Cumulative Feature Overview Identifies product features available to you when upgrading. This tool requires Microsoft Excel. Any user should consult this document, as needed. Note: Make sure to enable macros when prompted to do so. Otherwise, the Mic