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