The tasks in this extension allow for running flyway cli commands from both the Build and Release pipelines in Azure DevOps. An installer is also provided.
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).
https://flywaydb.org/documentation/
Flyway ships with JDBC drivers for the following databases by default:
- Aurora MySQL
- Aurora PostgreSQL
- CockroachDB
- Derby
- Firebird
- H2
- HSQLDB
- MariaDB
- MySQL
- Percona XtraDB
- PostgreSQL
- SQLite
- SQL Server
- Sybase ASE
The Terraform CLI task supports executing the following commands
- migrate
- clean
- info
- validate
- baseline
- repair
The tasks can execute on windows and linux build agent operating systems including Ubuntu and Windows.
The dedicated Flyway Installer
task allows for complete control over how frequently and on which agents flyway is installed.
This installer should be used before a CLI tasks.
- Command: first select the command you want to use, be sure to read Flyway official documentation first
- migrate: "Migrates the schema to the latest version. Flyway will create the schema history table automatically if it doesn’t exist."
- clean: "Drops all objects (tables, views, procedures, triggers, …) in the configured schemas."
- info: "Prints the details and status information about all the migrations."
- validate: "Validate applied migrations against resolved ones (on the filesystem or classpath) to detect accidental changes that may prevent the schema(s) from being recreated exactly."
- undo: Not supported yet in FlywayCLI (Flyway Pro feature)
- baseline: "Baselines an existing database, excluding all migrations up to and including baselineVersion."
- repair: "Repairs the Flyway schema history table."
- SQL scripts directory: directory to scan recursively for migrations scripts
- JDBC URL: the jdbc url to datatabse. Must respect standard format. These formats can be found on Flyway documentation. Ex for SQL Server
- Datatabse user
- Datatabse password
- Command Options: any option not listed above can be configure here. Have a look at Flyway documentation to know more about available options