Version control tools

List of source version control tools for databases.
State-based tools - generate the scripts for database upgrade by comparing database structure to the model (etalon).
Migration-based tools - help/assist creation of migration scripts for moving database from one version to next.

Liquibase

Liquibase is an open source database-independent library for tracking, managing and applying database schema changes. It has the ability to roll changes back and forward from a specific point. It makes it easy to define database changes in a format that's familiar and comfortable to each user and then automatically generates database-specific SQL for you.

Generate change script: Yes
Runs on: (for desktop): Linux,Mac OS,Windows
Type: -
Repositories: -
Commercial: Free
Free edition: Yes

Flyway

Flyway provides version control for your database so you can migrate it with ease and confidence. Migrations can be written in SQL (database-specific syntax (such as PL/SQL, T-SQL, ...) is supported) or Java (for advanced data transformations or dealing with LOBs).

Generate change script: No
Runs on: (for desktop): Linux,Mac OS,Windows
Type: Migration-based tools
Repositories: File
Commercial: Commercial
Free edition: Yes

FluentMigrator

FluentMigrator is a migration framework for .NET. Database schema changes are described in classes written in C# that can be checked into a version control system.

Generate change script: Yes
Runs on: (for desktop): Windows
Type: Migration-based tools
Repositories: File
Commercial: Free
Free edition: Yes

Ruby on Rails Migrations

Ruby on Rails Migrations enables to use Ruby for defining database schema changes, which makes it convenient to use a version control system for maintaining synchronization with the actual code.

Generate change script: Yes
Runs on: (for desktop): Linux,Mac OS,Windows
Type: Migration-based tools
Repositories: Database
Commercial: Free
Free edition: Yes

DBGeni

DBGeni helps to manage database migrations that include applying and rolling them back to move your database from version to version easily. If you follow a few opinionated rules, DBGeni knows where to find your migrations scripts, the order to run them and what still needs to be applied.

Generate change script: No
Runs on: (for desktop): Linux,Windows
Type: Migration-based tools
Repositories: Database
Commercial: Free
Free edition: Yes

Sqitch

Sqitch is a database change management application. Changes are implemented as scripts native to your selected database engine. It manages changes and dependencies via a plan file and employs a Merkle tree pattern similar to Git and Blockchain to ensure deployment integrity.

Generate change script: Yes
Runs on: (for desktop): Linux,Mac OS,Windows
Type: -
Repositories: Database
Commercial: Free
Free edition: Yes

yuniql

yuniql is an open source schema versioning and migration tool made with .NET Core. Deploy fresh databases fast using plain-SQL, seed lookup tables and test data from CSV and run environment-specific migrations. yuniql is released as stand-alone .exe app (no CLR needed!), Azure DevOps Pipelines Tasks, .NET Core tool, nuget package and Docker container.

Generate change script: -
Runs on: (for desktop): Linux,Windows
Type: Migration-based tools
Repositories: -
Commercial: Free
Free edition: Yes

Apricot DB

Git based project/snapshot synchronization

Generate change script: Yes
Runs on: (for desktop): Windows
Type: State-based tools
Repositories: -
Commercial: Free
Free edition: Yes

GenMyModel

GenMyModel supports Versioning & Time Machine. Need to go back in time? Save major and minor versions of your models. Select which one to deliver. Track change history, take snapshots, reuse, merge and rebuild models.

Generate change script: Yes
Runs on: (for desktop): -
Type: -
Repositories: -
Commercial: Commercial
Free edition: Yes

dbForge Studio for MySQL

dbForge Studio for MySQL is a powerful multifunctional tool that facilitates interaction with databases. In particular, it provides the Database Projects functionality that allows for great improvement of the database development and SQL editing. Scripts and query files are logically organized and can be easily accessed.

Generate change script: -
Runs on: (for desktop): Windows
Type: State-based tools
Repositories: Database
Commercial: Commercial
Free edition: Yes

dbForge Data Compare for MySQL

dbForge Data Compare for MySQL is an extremely helpful tool that allows for MySQL and MariaDB data comparison and synchronization. It provides numerous opportunities for quick analyzing the results of comparison, making alterations, and generating sync scripts. The command-line interface makes it easy to plan and automate any synchronization tasks.

Generate change script: Yes
Runs on: (for desktop): Windows
Type: State-based tools
Repositories: Database
Commercial: Commercial
Free edition: Yes

dbForge Schema Compare for MySQL

dbForge Schema Compare for MySQL is a helpful tool for MySQL database structure comparison. It simplifies tracing distinctions in MySQL database schemas and script folders in the user-friendly interface.

Generate change script: Yes
Runs on: (for desktop): Windows
Type: State-based tools
Repositories: Database
Commercial: Commercial
Free edition: Yes