Flyway V10 has landed
Published 16 O 2023
We are excited to announce that the latest version of Flyway. Version 10 includes a number of major changes which enhance the capabilities of Flyway and will allow all users to stay up to date on the most secure version of Flyway ever released regardless of which database you are using. We have addressed all known critical and high priority vulnerabilities, and we are reaching out to our community users and customers to strongly recommend that they use the latest version of Flyway to ensure that their systems and environments are safe and secure. At Redgate Software we believe that offering secure products is paramount, and the Flyway team has been working hard to respond to new vulnerabilities that arise from security scans.
Older database compatibility reinstated in Community
If you have been using Flyway for many years you will have noticed that compatibility is dropped when a database engine lapses over the 5 year old threshold. That is, unless you had upgraded to a paid version. In version 10 this restriction will no longer apply which means that Community users can use the latest version of Flyway on old databases. The reason we are removing this restrictions is to allow Community users using older databases to not only benefit from the latest changes to Flyway, but also to reduce the risk of using older versions of Flyway that include known security vulnerabilities that have since been addressed.
As was the case previously, Flyway Teams and Flyway Enterprise will come with enhanced product support benefits. Read more here.
Open Source commitment
Flyway lead software engineer James Johnston recently talked wrote about our plans for the Flyway engine, OSS (open-source software) and Redate. For full details on our plans, please read his excellent post here.
The way that database support is built in Flyway has meant the Flyway team had to do work on open-source submissions before they could be accepted - this has meant that it took a while to get community PRs integrated. Alongside splitting up the OSS & Redgate editions we've also moved a number of the database support plugins to their own github repository which will make it much easier to accept and manage community updates.
Flyway licensing improvements
Another significant security update is the integration of the Redgate licensing system into Flyway. This is a major upgrade to the legacy Flyway licensing and the manual key management that it requires. The older license keys will continue to work, however users can now authenticate using their Redgate ID, which has all of their licenses associated with it, which is much simpler.
You'll be able to use the new Flyway auth verb to perform your license key acquisition and take away the pain of receiving a key in email and finding out where to store it so Flyway can use it.
An upgrade to the Flyway.conf file with support for "environments"
A new configuration format will replace the flyway.conf. TOML is a similar format (key-value pairs) as the conf file although it allows us to more easily structure the data stored within it. The reason for introducing this change is that it has allowed us to create a shared configuration file between Flyway CLI and Flyway Desktop. An added benefit to this has been that there are many cases where you have to work with multiple DBs (for example, dev and test environments) and Flyway didn't have a convenient way to represent these. We are now introducing the concept of environments where this represents what you need to configure to work with a particular environment. More details regarding the environment settings can be found here.
The easiest way to upgrade a flyway conf file to the new toml format is to open Flyway Desktop and click on the Import button within your project and let Flyway desktop do all of the work for you.
For a period both the .conf and TOML formats will work, but new features we only be added to the new TOML configuration format.
SingleStoreDB support
We are introducing support for SingleStoreDB into our OSS repo. (SingleStoreDB - Flyway - Product Documentation)
The integration of Flyway and SingleStoreDB, combines Flyway's seamless schema management with SingleStoreDB's high-performance distributed SQL database, which enables to you to enjoy faster development cycles, improved database performance and reduced infrastructure costs.
Google Cloud Spanner
Google Cloud spanner is NOW out of Beta and into full support. Google Cloud Spanner - Flyway - Product Documentation
Other new features which are now available to the Flyway community
We've got plans to do much more but there were some features we've had locked away at Teams that we felt would add value to community users so we are making them available
Using Info Filters, (info command documentation) the output from info can be filtered to only the parts of the history that you care about.
ignoreMigrationPatterns allows you to Ignore migrations using validate and repair according to a given list of patterns.
We have also added the following callbacks
- beforeEachMigrateStatement
- afterEachMigrateStatement
- afterEachMigrateStatementError
- beforeConnect
Script Migrations: sometimes it may be more desirable to use a scripting language for migrations. Flyway supports these file extensions .ps1, .bat, .cmd, .sh, .bash, .py as migrations, and on non-Windows platforms it also supports migrations without extensions as migrations.
Breaking changes
There are a number of breaking changes in V10 which you should be aware of: -
- Removed deprecated flyway.check.reportFilename. Please use flyway.reportFilename.
- The 'cherryPick' configuration option has been moved to a configuration extension. When using the API, it can no longer be directly set through configuration object - instead it is set using an 'cherryPickConfigurationExtension' object which must be retrieved from the plugin register. See the docs for this configuration parameter for more information.
What are we working on next
NoSQL is coming
We have listened to the Flyway community who want to manage their NoSQL database in the same database DevOps process that they use Flyway to manage relational databases. Over the coming year we have plans to add support for MongoDB, Cassandra and Redis. If you would be interested in being notified when MongoDB support is available, please complete the following form.
Clickhouse
We can see a lot of community interest in Clickhouse and we are planning to accept the community raised PRs for Clickhouse support into Flyway.
Thank you for taking the time to read about our latest V10 release, if you would like to reach out to me to discuss anything in this release please feel free to email me (adam.britt@red-gate.com)