Product articles
Redgate Flyway

Using JSON Output to Track and Log Flyway Migration Activity

Flyway's JSON output provides a lot of useful information about the migrations files, database, and version changes, in a format that automated processes can read and use. This article demonstrates how we can create a Flyway callback that uses this JSON output to automatically send simple, human-readable notifications of what happened during a migration, helping developers stay informed about version changes that could impact their work. Read more

Defusing Flyway Validation Errors using Smarter Checksum Comparisons

This article provides a scripted SQL tokenizer script that quickly verifies whether a Flyway validation error is a real cause for concern, due to retrospective metadata changes, or just the result of a developer valiantly adding formatting and documentation to improve the code. If the changes are purely cosmetic, we can safely run Flyway repair to resume normal migrations. Read more

Simplifying Data Import and Export for Database Development

Extracting and importing data for development and testing is made trickier due to issues such as constraints, dependencies, and special data types. This article introduces a cross-RDBMS solution with JSON for data storage and PowerShell cmdlets that use ODBC to help automate extraction and import, and JSON Schema for validation. Just provide a DSN, and you’re good to go! Read more

Installing and Upgrading the Flyway CLI

This article demonstrates three ways to install and maintain the Flyway CLI. I start with the easiest way, which is to run it from Docker. Next, is a standard, manual installation on both Windows and Linux, complete with a PowerShell routine that uses aliases to make it easier to keep Flyway up to date and to switch between versions. Finally, I'll describe briefly the advantages and disadvantages of using a Package Manager like Chocolatey. Read more

The Importance of Access Checks and Controls in Database Development

This article illustrates the importance in any database development project of a 'multi-layered' approach to database access controls and security checks, based on the Principle of Least Privilege. It describes a security incident that was raised when databases related to a local development project were found to have been erroneously deployed to a remote test server. It explains the nature of the incident, what went wrong that allowed it to happen, and the measures that were put in place to prevent its recurrence. Read more

Forks in Flyway Database Development Work

Database forking allows teams to multi-task, working on different strands of development in parallel. It also allows them to manage several 'variants' of a production database, such as for SaaS applications with client-specific schema requirements. This article explains how Flyway supports and simplifies database forking, via use of Flyway's locations, baseline migrations and by mapping Flyway projects to schemas. Read more

Flyway’s Repair Command Explained Simply

The Repair command allows Flyway migrations to recommence on a database, following one or more validation errors. It modifies various details recorded in the schema history table, for applied migrations, to make them consistent with the data and metadata of the current set of Flyway migration files. This article explains what problems Repair can fix and how to run it safely, and a few alternative strategies. Read more

Data Container Revisions, Resets and Graduations

Redgate Test Data Manager allows developers to save each new version of a database as a data container revision. After making local development changes to the container, or running tests, they can instantly reset it to its starting revision. They can also load any previous revision and can even 'graduate' a revision to an image, providing a new baseline for ongoing team development. These techniques are especially effective when used in conjunction with Flyway, which automatically tracks the version of every copy of the database. Read more