Flyway 9.x

Released: Jul 13, 2022

Updates in Flyway 9.x

v9.22.3

Updated Oct 12, 2023

Features

  • The AWS-Secrets JDBC driver included in the Commandline package has been upgraded to 2.0.0.
  • Added "END CASE" support in Google BigQuery SQL script.
  • Updated newest supported version of Snowflake to 7.33

Fixes

  • Keep software.amazon.awssdk:s3 on latest 2.20.X release to get fix for CVE-2023-4586.
  • Upgrade software.amazon.awssdk:s3@2.20.94 to software.amazon.awssdk:s3@2.20.158 to fix CWE-295.

v9.22.1

Updated Sep 12, 2023

Features

  • Updated Java 17 JRE included in Flyway CLI.
  • Updated CockroachDB support to V22.2.

Fixes

  • Now correctly parses Oracle wrapped statements.
  • Fixed filter file option detection.
  • Fixed invalid flags not correctly erroring at the end of the arguments.

v9.22.0

Updated Aug 30, 2023

Features

  • Code Analysis will now honor 'BaselineVersion' configuration if SchemaHistory table is absent.

Fixes

  • Fixed issue with 'check.reportFilename' parameter.

v9.21.2

Updated Aug 22, 2023

Features

  • Added support for Oracle 21c.
  • Added support for MariaDB H2 compatibility mode.
  • Added support for external browser SSO in Snowflake.
  • Upgraded Jackson to 2.15.2.
  • check.buildUrl, check.buildUser and check.buildPassword are now deprecated. These will be replaced by check.buildEnvironment in Flyway 10.0.

v9.21.1

Updated Jul 27, 2023

Features

  • Added working directory variable to config.
  • When running the SQL*Plus '@' command, Flyway will now also search 'SQLPATH' and 'ORACLE_PATH' for runnable scripts. It will also attempt to load from absolute paths.
  • Upgraded H2 to 2.2.220.

v9.21.0

Updated Jul 20, 2023

Features

  • Dropped B Script functionality from teams into OSS.

Fixes

  • Fix handling of plugin string array properties.
  • Previously, when migrating using Flyway's SQL*Plus feature, Flyway parsed the first statement of the migration script before reading 'login.sql'/'glogin.sql' files. These files are now fully read beforehand.

v9.20.1

Updated Jul 12, 2023

Features

  • Added table feedback for SQL Plus.
  • Java compatibility:
    • flyway-core now has a dependency on jackson-dataformat-toml.

Fixes

  • Updated Maven Version check to use Maven Metadata to avoid website deprecation issues.
  • Java compatibility:
    • Upgraded AWS SDK to fix SNYK issue.
    • Upgraded google-cloud-spanner.
    • Upgraded Google Cloud Secretmanager to 2.22.5.
    • Upgraded Google Cloud Storage to 2.22.5.
    • Updated AWS Java SDK to 2.20.69.

v9.20.0

Updated Jun 20, 2023

Features

  • Added RGCompare for MySQL.
  • Now supports the latest version of Microsoft SQL Server 2022.

v9.19.4

Updated Jun 9, 2023

Fixes

  • Fixed incorrect license shown above correct license.
  • Fixed parsing of boolean values in configuration.

v9.19.3

Updated Jun 7, 2023

Fixes

  • Fixed missing Jackson-Annotation dependency in CLI bundle.

v9.19.2

Updated Jun 7, 2023

Fixes

  • Improved parsing of CASE expressions inside function bodies.
  • Fixed a bug encountered when cleaning Azure Synapse instances where Flyway referred to 'sys.xml_schema_collections` which only exists in SQL Server.

v9.19.1

Updated May 24, 2023

Features

  • Flyway's SQLPlus 'FEEDBACK' output wording has been adjusted to match Oracle SQLPlus.
  • The SQLite driver shipped with the Flyway CLI has been updated to 3.41.2.2.

Fixes

  • Fixed exit code when report is disabled and error occurs.
  • Fixed an issue where IF(..) function calls in MySQL functions could cause the statement parser to incorrectly split the function in two.

v9.19.0

Updated May 23, 2023

Features

  • Added 'driver()' method to 'FluentConfiguration'.
  • Extracted Oracle code to plugin. This will need to be added as a new dependency.
  • Changed error code on migration failure to be more specific and include script path and line number of failure in JSON error output.
  • Disabled 'GET_LOCK' on MariaDB connections when 'WSRERP=ON' is present. This is to allow for usage of MariaDB with Galera clusters.
  • An event connection will now be created to handle callbacks, and this connection will be released instantly after the event handle work is done.
  • Baseline scripts with the same version number as an applied '<< Flyway Baseline >>' are now put in the 'Ignored (Baseline)' state. Also, migrations in this state appear before the '<< Flyway Baseline >>' in the info output instead of being put at the end.
  • Updated RGCompare version to 1.11.2.9265.

v9.18.0

Updated May 15, 2023

Features

  • Now lets you define PostgreSQL functions using 'BEGIN ATOMIC'.
  • All undo migrations will no longer have their own rows in the ASCII-table output.
  • Baseline migrations now have a 'baseline' category in info output.
  • Only warns if reports are unable to write to the default location rather than print an error.

Fixes

  • Avoid hanging indefinitely during 'check' comparisons when running on Windows.
  • Running 'check -changes' or 'check -drift' now handles schema creation rows in the schema history table.
  • Bumped maven version to address an issue.
  • Updated documentation to provide solution to Snowflake JDBC JRE16+ issues.

v9.17.0

Updated Apr 27, 2023

Features

  • Added new Info report - You can now get a report of an 'info' call as a tab in a Flyway HTML report.
  • Improved support for 'WHENEVER SQLERROR EXIT' in Oracle SQL*Plus. This now works on its own and no longer needs to be followed by 'FAILURE' or 'SQL.SQLCODE'.
  • Added new migration report.
  • Added new Flyway reports - Single file HTML reports that expose important details and stats about your Flyway pipeline in an easy to read and share format.
  • Undo migrations which have not been applied will no longer cause validation to fail.
  • Added direct support for Alpine Linux.
  • Removed unused Edition flags documentation, e.g. '-community' or '-teams'. These flags are no longer used by Flyway and have been marked for deprecation. These flags will be removed in V10.
  • Ensured Flyway uses ALL_CREDENTIALS when using versions of Oracle where ALL_SCHEDULER_CREDENTIALS is deprecated. This is to avoid continuing to rely on functionality only retained in Oracle for backwards compatibility.
  • Removed redundant 'HTML' extension on automatically generated reports and prevented generation of reports for currently unsupported verbs.
  • Updated version of snowflake-jdbc to 3.13.29.
  • Bumped Snowflake JDBC to 3.13.30.
  • Bumped SQLite JDBC to 3.41.2.1.
  • Bumped MariaDB JDBC to 2.7.9.

Fixes

  • Fixed the issue causing empty dry run reports when running flyway using the Maven plugin.
  • The Snowflake SQL parser can now handle escaping single quotes inside strings using backslash.

v9.16.3

Updated Apr 4, 2023

Fixes

  • Removed placeholder text from report summary.
  • Fix Nullpointer exception on empty exception in reports.

v9.16.2

Updated Apr 4, 2023

Features

  • Updated Postgres password change regex to use latest form.
  • Updated msal4j.
  • Reduced allocations from class loading through FeatureDetector.

Fixes

  • Removed unwanted SLF4J messages on stderr.
  • EnvironmentModel: swap back connectRetries and connectRetriesInterval default values.

v9.16.0

Updated Mar 15, 2023

Features

  • Drift report titles have been renamed from 'Before' and 'After' to 'Expected' and 'Actual'.
  • Updated `flyway-bom` to use correct versioning system and deploy to Maven Central.

Fixes

  • Fixed reading in configuration from standard input in Teams and Enterprise edition.
  • Fixed a parsing error caused by begin transaction statements in Snowflake.

v9.15.2

Updated Mar 6, 2023

Features

  • When running 'check' commands with involve database comparison (i.e. '-drift' and '-changes') and Flyway has debug enabled, debug output from the Redgate Compare engine will now be logged as well.

Fixes

  • SQL errors with configured overrides no longer cause the Oracle SQLPlus spool output to close prematurely and lead to a null pointer exception.
  • Further improvements to the Snowflake parser when detecting conditionally creatable objects.
  • Updated Ant dependency version to address a few vulnerabilities.

v9.15.1

Updated Feb 22, 2023

Features

  • If Flyway encounters a SQL exception while Oracle Spool is set, the error information is now written to the Spool output.

Fixes

  • Allow the Snowflake parser to handle more conditionally creatable objects.

v9.15.0

Updated Feb 16, 2023

Features

  • Added a flyway-bom pom for Maven. This BOM includes all modules of Flyway which are compatible with each other to be used in Maven dependency management.
  • When Flyway is running in Oracle SQLPlus mode, character escaping is now disabled by default in order to be consistent with Oracle's SQLPlus command-line tool.

Fixes

  • Fixed a bug where migration patterns display names incorrectly changed case depending on default locale.

v9.14.1

Updated Feb 1, 2023

Features

  • Database compatibility
    • Updated latest supported MariaDB version to 10.10.
    • Added support for Snowflake versions up to 7.1.
  • New features
    • Added 'NON_EMPTY_SCHEMA_WITHOUT_SCHEMA_HISTORY_TABLE' as a new error code.
  • Java compatibility
    • Redgate are introducing Multi-Release builds for Flyway which will support Java 8 and Java 17. This allows access to modern Java practices and technologies. This is with the aim to move fully to Java 17 in the next major release.

Fixes

  • Fixed issues with the Snowflake SQL parser which failed to correctly parse scripting blocks containing 'if' and 'for' statements.
  • Fixed issue with code analysis reports not generating when major or minor tolerance threshold has been passed and set build to fail.

v9.11.0

Updated Jan 5, 2023

Features

  • Regex Rule code analysis results now include the line and column number of where violations occurred.
  • 'check' reports now produce all successful reports and fail on the first non-successful report.
  • Updated RGCompare engine to 1.6.0.7325.

Fixes

  • Explicitly drop Oracle package bodies so that package bodies not tied to an existing package are also cleaned.

v9.10.2

Updated Dec 22, 2022

Features

  • Version operations (`version` or `-v` or `--version`) will now list the versions of all plugins (and if they are correctly licensed).
  • Updated AWS dependency.

Fixes

  • Resolved migration resolvers not fully supporting instances for API users.

v9.10.1

Updated Dec 16, 2022

Features

  • Updated RG Compare to 1.3.1.7159.

Fixes

  • Flyway includes a custom SQL Fluff plugin, containing extra rules for enterprise users. Previously, if this custom plugin failed to install it would fail the whole process citing an absence of the correct SQL Fluff installation. It now only gives a warning so core SQL Fluff rules can still be run.
  • Incorrectly errored when validating the configuration for the 'check -changes' command, when using a URL and a snapshot.
  • Config parameter `flyway.executeInTransaction` should now correctly set when doing so via an environment variable.
  • Fix missing `setBaselineVersion(MigrationVersion baselineVersion)` on ClassicConfiguration.

v9.10.0

Updated Dec 8, 2022

Features

  • Added a new configuration parameter ('flyway.executeInTransaction') which determines whether SQL execution in a transaction is enabled.

Fixes

  • Fix NPE that results when configuring either 'workingDirectory' or 'jarDirs'.

v9.9.0

Updated Dec 7, 2022

Features

  • Support for BigQuery is now out of beta and in GA.
  • The version of the Postgres driver included in the CLI has been increased to 42.4.3.
  • Updated error message for invalid CLI argument to reflect possible fixes.
  • The bundled Regex Rules are now case insensitive.

Fixes

  • Removed the parsing of nested multiline comments from Oracle. This is in line with their documentation that states nested multiline comments are not supported.
  • Drift results now appear in the JSON and HTML reports when 'failOnDrift' is set and drift is present.
  • Fix documentation to use correct method to configure url, user and password in API.

v9.8.3

Updated Nov 24, 2023

Fixes

  • The version of RG compare included with Flyway has been increased to 1.2.2.6628. This avoids a bug in which 'check' produced empty change/drift reports for certain SQL Server URLs.
  • Upgrade the version of the Apache Ignite core dependency to avoid a new vulnerability.

v9.8.2

Updated Nov 18, 2022

Features

  • Check reports are now written when an exception occurs.

v9.8.1

Updated Nov 11, 2022

Fixes

  • Fix issue with Regex Rules looking in the wrong directory by default.
  • Fixed parsing error with batch statements in GCP Spanner.

v9.8.0

Updated Nov 11, 2022

Features

  • The JSON result for the 'check' command now includes the paths to any generated report.
  • SingleStoreDB JDBC driver is now shipped in the CLI.
  • Flyway now allows a configuration ('flyway.check.failOnDrift') to trigger an error if drift is detected with `check -drift` allowing the build to be halted should drift exist.
  • Added SingleStoreDB support at the Teams level.
  • Cockroach DB is now supported up to the latest version of 22.1.
  • 'jackson-dataformat-toml' is now used to read TOML config files, instead of 'night-config'.
  • All 'check' results now include the operation in the JSON result.
  • The code analysis engine's name is now included in the summary logs.
  • Bumped the version of Redgate Compare to 1.0.0.6319.
  • Moved documentation to main repo.
  • Created a Dialect configuration to allow configuration of rules engine dialect via Flyway.
  • Added descriptions to shipped Regex Rules in the check report.
  • Bundled Regex Rules are now enabled by default.
  • The version of 'jackson-dataformat' bundled in the CLI package has been bumped to 2.14.0.
  • Breaking changes - Logic for the undo command has been moved into the separate 'flyway-proprietary' module, which will need to be present on the classpath in order to use the undo command. This also means that undo migrations will now be resolved in Community edition, and migrations may be marked as undone in the info output, though running the undo migrations still requires a Teams or Enterprise license. Lastly, when implementing undo migrations as java migrations, they should extend 'UndoJavaMigration' instead of 'BaseJavaMigration'.

Fixes

  • Fixed an issue where 'clean.mode' would not be detected in Enterprise.

v9.7.0

Updated Nov 2, 2022

Features

  • Added bundled Code Analasys RegEx rules for Enterprise tiers.
  • Added a new rule to the Flyway SQL Fluff plugin, which is applied when running code analysis. This rule checks that all tables created in TSQL have an 'MS_Description' extended property set in the same file.
  • Added REGEX rules engine to `-code` for Enterprise tier.
  • Rule codes are now visible in Code Analysis HTML Reports.
  • Updated version of MSAL4J.
  • Updated AWS SecretsManager.

Fixes

  • Help output for 'check' no longer returns 'null' when 'outputType=json'.
  • Fix Snowflake parser to handle nested 'BEGIN...END' statements.

v9.6.0

Updated Oct 26, 2022

Features

  • Added an Apple Mac CLI for ARM64 CPUs.
  • Added error override behavior which excludes the full error/warning message and only shows the SQL state and error code.
  • Moved SQLFluff specific components into own module.
  • Increased hsqldb version from 2.6.1 to 2.7.1.
  • PostgreSQL history table indexes and constraints now use the configured tablespace.
  • Dropped PostgreSQL DOMAINs with 'CASCADE'.

v9.5.1

Updated Oct 20, 2022

Features

  • Removed in-product warnings when using PostgreSQL 15.

v9.5.0

Updated Oct 19, 2022

Features

  • Added custom code analysis rule that requires tables to have a primary key.
  • Added syntax highlighting to dry run reports.
  • Replaced SQLPlus placeholders that begin with a double '&'.
  • Added support for PostgreSQL 15.
  • Ensured correct version of SQL Fluff is installed.
  • Updated version of 'commons-text'.
  • Added edition to the version model.
  • When urls are unsupported by check, ascertain which ones are unsupported, and include them as part of the exception.

v9.4.0

Updated Sep 29, 2022

Features

  • Added support for Microsoft SQL Server 2022.
  • Added a configuration to allow flyway to fail when sqlfluff finds issues when running `check code`.
  • Code analysis is now available in Community Edition.

v9.3.1

Updated Sep 20, 2022

Fixes

  • Fixed cases of 'cherryPick' causing issues with change and drift reports.
  • Fixed bug where 'installedBy' wasn't always populated during a baseline.
  • Fixed bug when checking for changes or drift when multiple schemas are configured.

v9.3.0

Updated Sep 8, 2022

Features

  • Closed the Teams preview access to Change and Drift report.

Fixes

  • Fixed issues with Community Fallback.
  • Fixed Windows paths with spaces causing classpath issues.

v9.2.3

Updated Sep 7, 2022

Features

  • Added Community fallback warning to JSON output object.
  • Now shows correct validation message when checking for license keys that have expired

v9.2.2

Updated Sep 2, 2022

Features

  • Schemas are now created if the user has edited flyway.schemas after an initial migration.

Fixes

  • Fixed issue with Flyway not running correctly on Macs with a path that has a space.
  • Added null-check to avoid NPE when scanning inaccessible locations.
  • Fixed bug in 'check' when comparing non-Oracle databases with configured schemas.
  • Dropped MariaDB JDBC driver back to major version 2 to enable MySQL compatibility.

v9.2.1

Updated Aug 31, 2022

Features

  • Check Report UI improvements.
  • Change and drift reports now fail for incompatible database types.
  • Updated to support Snowflake 6 and Snowflake scripting.
  • Java compatibility:
    • Remove JNA dependency as no longer needed by MariaDB.
    • Increase MariaDB driver version to 3.0.7.
    • Move 'flyway-commandline' runtime dependency to correct scope.

v9.2.0

Updated Aug 25, 2022

Features

  • Improved the 'check' report.
  • Removed the error information from 'CompareResult' so that the existing JSON error handling is used.
  • Java compatibility:
    • Removed unnecessary dependencies.
    • Moved Undo command into flyway-proprietary.
    • Removed unnecessary maven-model dependency.
    • Made 'CompositeResult' generic.
    • Transitive GAX dependency is now included in CLI.

Fixes

  • Fixed problems when appending to code analysis reports.
  • Fixed bug in 'check -code' where multiple SQL files were not being correctly linted.
  • Configured suffixes are now case insensitive.

v9.1.6

Updated Aug 18, 2022

Features

  • Code analysis now auto detects the dialect if a URL is provided, otherwise a '.sqlfluff' configuration file is needed.

Fixes

  • connectRetriesInterval now defaults to 120 instead of 0 on the Maven plugin.

v9.1.5

Updated Aug 16, 2022

Features

  • Added SQLFluff to Redgate/Flyway Docker image for use with new integrations.

v9.1.4

Updated Aug 15, 2022

Features

  • Added 'dryrun' to check as a report that can be generated.
  • Updated dependencies to fix vulnerabilities.

v9.1.3

Updated Aug 10, 2022

Features

  • Added access to Community features for Teams and Enterprise artifacts when no license key is given.
  • PostgreSQL session locks now use one connection.
  • Added support for H2 2.1.214.

v9.1.2

Updated Aug 3, 2022

Features

  • Added support for PgBouncer transaction pooling - You can now use transactional locks in PostgreSQL by default, which enables support for PgBouncer (session locks can be enabled again by setting 'flyway.postgresql.transactional.lock=false').
  • Updated bundled JRE to latest version of Java 11 to include security updates.

Fixes

  • Check includes all transitive dependencies so it runs out of the box.
  • BigQuery procedures containing `END AS` are not cut off early.
  • Update ensured support to latest documented versions for Oracle and Snowflake.

v9.0.4

Updated Jul 29, 2022

Fixes

  • Change reports now HTML encode SQL.

v9.0.3

Updated Jul 28, 2022

Features

  • Improved tab styling of check reports.

Fixes

  • Change reports now HTML encode SQL.
  • JSON output for 'drift' now always shows the 'driftDetected' field.

v9.0.2

Updated Jul 26, 2022

Features

  • Multiple 'check' reports now appear as tabs.
  • Added the ability to serialize the 'LocalDateTime' field (in check JSON results) as a string.
  • No longer includes '.html' when generating JSON results for a report.
  • bash entrypoint now adds 'native' folder to library path for use on Microsoft Windows.
  • Now only prints the version information in Flyway once per execution.
  • No longer displays the underlying 'DELETE' rows during 'info'.
  • License check now occurs when a Flyway object is constructed.

v9.0.1

Updated Jul 15, 2022

Fixes

  • Fixed cases where validation fails saying checksums of '0' are now 'null'.

v9.0.0

Updated Jul 13, 2022

Features

  • Added '-migrationIds' flag to 'info' in order to get a comma-separated list of versions or descriptions for repeatables.
  • Added the 'check' command to the Flyway CLI (command line interface) for generating deployment reports.
  • Changes:
    • Info filter 'infoOfState' now allows multiple states as a comma-separated list.
    • You can now handle errors (with warning) when cleaning procs on Snowflake.
    • 'flyway/flyway-azure' Docker images are now deprecated and have been replaced with 'flyway/flyway:*-azure'.
  • Database compatibility:
    • H2 1.4 is now in Teams.
    • Oracle 12.2 is now in Teams.
    • MariaDB 10.2 is now in Teams.
    • HSQLDB 2.4 is now in Teams.
    • Flyway CLI now bundles version 2.6.1 of the HSQLDB driver.
  • Breaking changes:
    • Migration patterns that are version numbers are now treated as numbers rather than strings when matching to migrations.
    • Script and Java migrations are no longer executed during a dry run.
    • 'getResolvedMigration' method on Java Migrations interface now takes a StatementInterceptor.
    • Don't clear the Url/Pass/Username when setting a data source.
    • Changed default of cleanDisabled to true.
    • Removed deprecated parameters for configuring secrets managers.
    • Removed parameter 'oracleKerberosConfigFile' as it has been replaced by 'kerberosConfigFile'.
    • Removed parameters 'ignorePendingMigrations', 'ignoreMissingMigrations', 'ignoreIgnoredMigrations' and 'ignoreFutureMigrations' as they have been replaced by 'ignoreMigrationPatterns'.
    • 'MigrationType' have been moved into 'extensibility' package as an enum and replaced with 'CoreMigrationType'.
    • 'SQL__BASELINE' and 'JDBC__BASELINE' migration types have been removed from 'flyway-core'.
    • 'CoreMigrationType' enum field 'baselineMigration' is now called 'baseline', for which the type 'BASELINE' now returns true.
    • 'baselineMigrationPrefix' has been removed from Configuration.
    • You now need to use 'BaselineJavaMigration' from the 'flyway-proprietary' package to make Java-based Baseline Migrations.
    • Removed 'isUndo' and 'isBaselineMigration' from 'ResolvedMigration'.
    • 'Context' in 'resolveMigrations' on a 'MigrationResolver' is now a class which also has 'ResourceProvider', 'SqlScriptFactory' and 'SqlScriptExecutorFactory'.