dingo
dingo is a framework-agnostic lightweight cross-platform database migration tool that will keep your database schema in sync across multiple developers and deployment environments.
It's a command line tool that can be used on any project regardless of the programming language used to create it, be it Python, Go, C#, Java, Ruby, PHP or something else. This tool fits especially well with microservice architecture and services written in different languages, allowing you to have consistent and unified database migration process.
Key Features
Supports Postgres and SQL Server
Migrations are timestamp-versioned
Migrations are written using plain
.sqlProject configs can be stored as
.yml,.jsonor environment variablesUse different configuration profiles for different environments
Provides tools for rapid database development
Apply and revert database migrations
Installation
Currently, dingo can only be installed as a binary using default package management tools on Linux and macOS. If you'd like to make dingo a part of homebrew, apt or any other index, feel free to contribute, any help would be highly appreciated.
Install
First, download and install the binary:
Download and install the binary:
Run the following command to validate successful installation:
Uninstall
To uninstall dingo use:
To uninstall dingo use:
Basic usage
Create migration
The command above will create 20231105214436_create_table.sql at .../migrations/schemas.
Apply
The command above will apply migrations located at .../migrations using prod configuration profile.
For more detailed info on usage refer to wiki section or run:
Contribute
Any contributions are welcome