Flyway is an
open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
database-migration tool.
Concept
Flyway is based around seven basic commands: Migrate, Clean, Info, Validate, Undo, Baseline, and Repair.
Migrations can be written in
SQL
Structured Query Language (SQL) (pronounced ''S-Q-L''; or alternatively as "sequel")
is a domain-specific language used to manage data, especially in a relational database management system (RDBMS). It is particularly useful in handling s ...
(database-specific syntax such as
PL/SQL
PL/SQL (Procedural Language for SQL) is Oracle Corporation's procedural extension for SQL and the Oracle relational database. PL/SQL is available in Oracle Database (since version 6 - stored PL/SQL procedures/functions/packages/triggers sinc ...
,
T-SQL
Transact-SQL (T-SQL) is Microsoft's and Sybase's proprietary extension to the SQL (Structured Query Language) used to interact with relational databases. T-SQL expands on the SQL standard to include procedural programming, local variables, variou ...
, etc is supported) or
Java
Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
(for advanced data transformations or dealing with LOBs).
It has a command-line client, a Java API (also works on
Android) for migrating the database on application startup, a
Maven
MAVEN is a NASA spacecraft orbiting Mars to study the loss of that planet's atmospheric gases to space, providing insight into the history of the planet's climate and water. The name is an acronym for "Mars Atmosphere and Volatile Evolution" w ...
plugin, and a
Gradle
Gradle is a build automation tool for multi-language software development. It manages tasks like compilation, packaging, testing, deployment, and publishing. Supported languages include Java (as well as JDK-based languages Kotlin, Groovy, Sc ...
plugin.
Plugins are available for
Spring Boot,
Dropwizard,
Grails,
Play
Play most commonly refers to:
* Play (activity), an activity done for enjoyment
* Play (theatre), a work of drama
Play may refer also to:
Computers and technology
* Google Play, a digital content service
* Play Framework, a Java framework
* P ...
,
SBT,
Ant
Ants are Eusociality, eusocial insects of the Family (biology), family Formicidae and, along with the related wasps and bees, belong to the Taxonomy (biology), order Hymenoptera. Ants evolved from Vespoidea, vespoid wasp ancestors in the Cre ...
,
Griffon,
Grunt
Grunt, grunts or grunting may refer to:
Sound and music
* Grunting (tennis), in tennis refers to the loud noise, sometimes described as "shrieking" or "screaming", made by some players during their strokes
* Death grunt, the death metal singi ...
,
Ninja
A , or was a spy and infiltrator in pre-modern Japan. The functions of a ninja included siege and infiltration, ambush, reconnaissance, espionage, deception, and later bodyguarding.Kawakami, pp. 21–22 Antecedents may have existed as ear ...
, and more.
Supported databases include
Oracle
An oracle is a person or thing considered to provide insight, wise counsel or prophetic predictions, most notably including precognition of the future, inspired by deities. If done through occultic means, it is a form of divination.
Descript ...
,
SQL Server,
DB2,
MySQL
MySQL () is an Open-source software, open-source relational database management system (RDBMS). Its name is a combination of "My", the name of co-founder Michael Widenius's daughter My, and "SQL", the acronym for Structured Query Language. A rel ...
(including
Amazon RDS, Aurora MySQL,
MariaDB
MariaDB is a community-developed, commercially supported Fork (software development), fork of the MySQL relational database management system (RDBMS), intended to remain free and open-source software under the GNU General Public License. Developm ...
), Percona XtraDB,
PostgreSQL
PostgreSQL ( ) also known as Postgres, is a free and open-source software, free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. PostgreSQL features transaction processing, transactions ...
(including
Amazon RDS and
Heroku
Heroku is a cloud platform as a service (PaaS) supporting several programming languages. As one of the first cloud platforms, Heroku has been in development since June 2007, when it supported only the Ruby programming language, but now also suppo ...
), Aurora PostgreSQL,
YugabyteDB
YugabyteDB is a high-performance transactional distributed SQL database for cloud-native applications, developed by Yugabyte.
History
Yugabyte was founded by ex-Facebook engineers Kannan Muthukkaruppan, Karthik Ranganathan, and Mikhail Bau ...
,
CockroachDB
CockroachDB is a source-available distributed SQL database management system developed by Cockroach Labs.
The relational functionality is built on top of a distributed, transactional, consistent key-value store that can survive a variety of d ...
,
Redshift
In physics, a redshift is an increase in the wavelength, and corresponding decrease in the frequency and photon energy, of electromagnetic radiation (such as light). The opposite change, a decrease in wavelength and increase in frequency and e ...
,
Informix
Informix is a product family within IBM's Information Management division that is centered on several relational database management system (RDBMS) and multi-model database offerings. The Informix products were originally developed by Inform ...
,
H2,
Hsql
HSQLDB (''Hyper SQL Database'') is a relational database management system written in Java. It has a JDBC driver and supports a large subset of SQL-92, SQL:2008, SQL:2011, and SQL:2016 standards. It offers a fast, small (around 1300 kilobytes ...
,
Derby
Derby ( ) is a City status in the United Kingdom, city and Unitary authorities of England, unitary authority area on the River Derwent, Derbyshire, River Derwent in Derbyshire, England. Derbyshire is named after Derby, which was its original co ...
,
SQLite
SQLite ( "S-Q-L-ite", "sequel-ite") is a free and open-source relational database engine written in the C programming language. It is not a standalone app; rather, it is a library that software developers embed in their apps. As such, it ...
,
SAP HANA
SAP HANA (HochleistungsANalyseAnwendung or High-performance ANalytic Application) is an in-memory, column-oriented, relational database management system developed and marketed by SAP SE. Its primary function as the software running a datab ...
,
Sybase ASE,
Phoenix, and
Firebird
Firebird and fire bird may refer to:
Mythical birds
* Phoenix (mythology), sacred firebird found in the mythologies of many cultures
** Fenghuang, sometimes called Chinese phoenix
* Vermilion bird, one of the four symbols of the Chinese constella ...
.
Adoption
Flyway received 11,500,000 downloads in 2018.
In January 2015, Flyway was placed in the "Adopt" section of the Thoughtworks Technology Radar.
In July 2019, Flyway was acquired by
Redgate.
Related tools
*
DBmaestro
*
Liquibase
References
External links
* {{Official website, https://flywaydb.org/
Database administration tools
Java platform
Agile software development
Software using the Apache license