Nice Migration tool for Java based solutions
Use Cases and Deployment Scope
We use it as the primary tool for database migrations, especially for solutions based on Java programming language. It has an intuitive way to operate within the Java ecosystem (Maven and Gradle especially). It has multiple functions/events to keep watch on the migration progress, so it's very useful for solutions that had several migrations with breaking changes on it, in a small period of time, you can subscribe to each event along the migration and see the whole progress of it, and detect any problems or odd behaviors at any time.
We use Flyway in every single environment, in my opinion, is a good tool for every single scenario and is not restrained to development environments only. I do think that you will need at least the Team edition, to take advantage of database objects as code on version control. This feature has a huge impact on the software development cycle as it works as a kind of ORM tool with also the migration capabilities.
Pros
- Database Migration
- Database Migration Events
- Managing database objects as code objects in version control
Cons
- The Object Mapping should be available on commuinity edition
- More Programming Languages support
Likelihood to Recommend
Database Migrations on Java-based solutions. It has one of the best integrations with it as a database migration tool, you can do it with the community edition (no pricing involved) and it works flawlessly with Maven and Gradle. It's not an expensive tool in order to use the next level of features and is worth the money. I would recommend reaching that edition level as the object mapping feature gets really handy. I would not recommend it for any Microsoft-based solution (.Net) as is not compatible at all based on my experience, this is a tool only worth it with Java applications.
