Getting Grate

There’s a variety of ways to access grate depending on your needs:

Source Code/raw binaries

The github site has both the raw source code for local compilation, and also has binaries for a variety of OS’s published at each release.

Docker

There’s a erikbra/grate docker image published to dockerhub on every release. See the examples folder for a demo using this to a migration.

Start the sqlserver database

docker network create grate_network && docker run -e SA_PASSWORD=gs8j4AS7h87jHg -e ACCEPT_EULA=Y --name db --network grate_network -d mcr.microsoft.com/mssql/server:2019-latest

Run grate migration

docker run -v ./examples/docker/db:/db  -e APP_CONNSTRING="Server=db;Database=grate_test_db;User Id=sa;Password=gs8j4AS7h87jHg;TrustServerCertificate=True" --network grate_network erikbra/grate
# run with database type, accept: sqlserver, postgresql, mariadb, sqlite, oracle
# docker run -v ./examples/docker/db:/db -e DATABASE_TYPE=sqlserver -e CREATE_DATABASE=true -e ENVIRONMENT=Dev -e TRANSACTION=true -e APP_CONNSTRING="Server=db;Database=grate_test_db;User Id=sa;Password=gs8j4AS7h87jHg;TrustServerCertificate=True" --network grate_network erikbra/grate  

Cleanup resources


docker kill db  || docker network rm grate_network  || docker rm $(docker ps -f status=exited | awk '{print $1}')  

Dotnet Tool

grate is available as a dotnet global tool. Simply dotnet tool install -g grate to get the package.

Note, pre-requisite is dotnet 6. If the above command gives you:

error NU1202: Package grate *.*.* is not compatible with net5.0 (.NETCoreApp,Version=v5.0) / any. 
Package grate 0.10.0 supports: net6.0 (.NETCoreApp,Version=v6.0) / any

please install dotnet 6 (download [here](https://dotnet.microsoft.com/download/dotnet/6.0)).

* You are attempting to install a preview release and did not use the --version option to specify the version.
* A package by this name was found, but it was not a .NET tool.
* The required NuGet feed cannot be accessed, perhaps because of an Internet connection problem.
* You mistyped the name of the tool.

For more reasons, including package naming enforcement, visit https://aka.ms/failure-installing-tool

please install dotnet 6

Winget

grate is available on winget. Simply winget install erikbra.grate for awesome!

Homebrew

grate is available as a Homebrew cask. Simply brew install --cask erikbra/cask/grate for awesomeness!

Notes

Plans are afoot for more OS specific package managers, watch this space.