When it comes to Database Schema Migration Tool selection for CI/CD development, there are a few key points to keep in mind. One of the most important things to look for is a tool that is both reliable and easy to use.
Another key consideration is the tool’s ability to integrate with popular CI/CD tools. This will allow you to easily automate the migration process and ensure that your database schema is always in sync with your codebase.
Finally, it’s essential to find a tool that is affordable and has a good support infrastructure. This will ensure that you’ll be able to get the help you need when you need it.
Based on my research, I believe that the Rumba RDBM tool is the best option for schema version control. It is both reliable and easy to use, and it perfectly supports PostgreSQL, which is the database I am currently using. Additionally, Rumba’s license price is about 10 times less than the price of competitor deals, and it has great support.
Why I’m going to use a tool for my schema migrations
The modern software development involves at least three different environments: development, testing and production. So, there are my main few reasons why I might want to use a tool for database schema migrations between:
- To automate the process of migrating the schema between environments. This can help to ensure that the process is carried out consistently and accurately.
- To provide a history of the changes that have been made to the schema. This can help to ensure that it is easy to track down and fix any problems that may have been introduced as a result of the schema changes.
- To help to avoid the possibility of human error when making schema changes. This can help to ensure that the database schema is always in a consistent state.
This kind of software can be really expensive, the most promoted tool’s licenses prices starts from $2000, and $3000. With subscription-based pricing, the total cost can be much higher than with traditional pricing models.
When you purchase a subscription to a software package, you are typically guaranteed the latest version of the software as well as any updates that are released while your subscription is active. Hm, the new way to execute the SQL-script within the same database engine? I don’t like the database and client tools that might to change their behavior in several years. So, the statement that I will always have the latest version of the product does not sound convincing to me.
I also found that the most mentioned tools are bloated with unnecessary features and has a huge list of supported database engines that I will never use. It seems like every time I’ll use one of them, I’ll find another feature that I don’t need and never use. I understand that it is trying to be an all-in-one solution, but it really doesn’t need to be.
No dependencies please!
Developers are increasingly using third-parties to simplify their development work and reduce the amount of time spent on low-level tasks. However, this reliance on external code can come at a cost. In some cases, the using third-party may be unavailable, unsupported, or not well suited for the task at hand.
Worse yet, a bug in the dependency can cause significant problems for the application. In cases like these, it can be useful to have a software that does not rely on any third-party dependencies.
I’m saying this because I have faced the fact that the main candidates depend on Java, but I don’t use it in my development cycle, so there is no need for a Java development environment, and it would be completely unnecessary on the DBA machine.
As you can see, I searched for reasonably priced product without extra dependencies, with a feature set required for my projects. And I think it is time to announce the winner and the competitors.
There are a variety of tools for database version control available, but the most popular ones are Flyway and LiquiBase. Unfortunately, both of them are Java-based tools. The Java Virtual Machine with JDBC driver must be installed to use these tools. Same time, Rumba comes as single and ready-to-run binary without any dependencies.
Both flagman tools have many useful features, but they are really overloaded with them. Also, I only dealt with the main database triad: MySQL, Oracle, and PostgreSQL. But personally, always stayed with PostgreSQL. So, I’ll be happy with these:
- Traditional for schema migration functions.
- Versioning, to track the changes in the database schema.
- Command-line interface, to use the tool from the scripts.
Rumba has all the necessary features and is way cheaper than Flyway and LiquiBase. Its commercial license starts from $10.