Redgate Flyway

Flyway V12 - updating from V11

Native Connectors MongoDB Driver

In Flyway v12 we're removing removing the integration with the legacy MongoDB driver and no longer shipping it. We've replaced it with the Native Connectors driver that uses the MongoDB API and mongosh tool (see Flyway Native Connectors - MongoDB). This has been the default driver since Flyway 11.5.0 (2025-03-26) and will be moving from being a preview feature to being GA

Some specific things to call out:

  • Script migrations aren't (yet) supported with the Native Connectors driver
  • If you were using check -code and your own regex rules then these won't work (yet) and you will see a "no database plugin found" error

If either of these are major issues then please contact Redgate support and we can review the priority on addressing these.

Redgate Compare now uses .NET 10

This shouldn't cause any problems as most dependencies are included but be aware that there are still a few external dependency requirements that need to be fulfilled by the OS you are running Flyway on

This could have an impact if you are using Enterprise functionality and building your own docker containers that include Flyway.

Flyway reporting output

Flyway's reports have been refactored so they no longer record a chronological set of Flyway events. If you want to keep a history of changes then we suggest you archive a copy of the generated report before running the next similar Flyway operation

Code Analysis Changes

Stopped supporting SQLFluff v1.2.1

Flyway used to only integrate with SQLFluff v1.2.1 because of changes in the output format of SQLFluff after that release. We removed that limitation in Flyway 10.15.1 (2024-06-27).

SQLFluff is now up to v4 and is so much better and more capable that keeping compatibility with this version makes no sense.

  • For Community users you'll need to update your local version of SQLFluff to something more recent than v1.3.0
  • For Enterprise users - we have a built-in instance of SQLFluff so you don't need to change anything

Removed support for legacy violation configuration

We're removing support for the following parameters in favor of doing this in your SQLFluff configuration

  • check.majorRules
  • check.minorRules
  • check.majorTolerance
  • check.minorTolerance

This blog post give a path to migrate over.

No longer shipping Redgate Regex rules

These were present in the /rules folder of every release.

We've replaced these with equivalent SQLFluff rules, see Replacing Redgate regex rules with SQLFluff rules.

We're stopping shipping these to avoid the nuisance of duplicate warnings if you run both regex and SQLFluff analysis.

Removed regex rules field passOnRegexMatch

This was an option that could be put in the Flyway TOML file that encapsulated the regex rule.

This inverted the logic of the regex (so you could look for the absence of a pattern rather than the presence).

The same can be accomplished with the regex itself

Other housekeeping changes

Removed cleanOnValidationError parameter

You can find out what to do instead here Deprecation of Clean On Validation Error

Updated the commandExtension method signature

We've removed Command from the method signature, this is an API in the public interface as part of flyway-core that we use to extend Flyway.

  • We've changed the method signature so if you are using this then you'll need to update your code and rebuild your module. and we've removed this because it is redundant.

We've updated the interface to return a generic type so code that implements this can be more expressive and do less casting

Removed REDGATE_LICENSING_PERMIT_PATH

This was how you supplied Flyway with an offline permit, this has now been replaced with the Offline Permit Path that is more useful as it available through more than just an environment variable.

It is the same contents, just a different name for the environment variable if you are using it that way.

Removed flyway.plugins namespace items

We announced the deprecation of this in Flyway V11 and that post includes what to use instead


Didn't find what you were looking for?