Migrate is a tool for performing declarative migrations by finding differences between an expected database schema, and the existing one, currently in a SQLite database.
If you just want to test the tool without installing .Net, then you can use a Docker image:
docker run -it 'mcr.microsoft.com/dotnet/nightly/sdk:9.0' bash
Inside the container run:
export PATH="$PATH:/root/.dotnet/tools"
After having .Net in your system you can run
dotnet tool install --global migtool
mkdir test_db
cd test_db
mig init
# generated project files with example definitions
mig gen
# output shows migration for existing definitions
mig exec
# executes migration
mig log
# output shows migration metadata and a summary of executed steps
- Declarative migrations
- Migration execution
- Migration execution as library
- Import Goose migrations
- Migration log
Areas where contributions are welcomed:
- Support for other RDBMS like PostgresSQL
- SQL generation
- SQL parsing
- bug fixes
- installation, packaging and release process
How to contribute:
- Open an issue to discuss the change and approach
- Add relevant tests
- Create a pull request mentioning the issue and also including a summary of the problem and approach to solve it
- Wait for the review