EF Migrations
All EF related commands must be run in the context of the Infrastructure project. So first, cd
into its directory:
cd apps/api/src/Eventuras.Infrastructure
Adding a migration
dotnet ef migrations add MigrationDescription -s ../Eventuras.WebApi/Eventuras.WebApi.csproj
There is also a Github action that adds an release of the eventuras db tool, which can be used to run migrations from the command line. The tool is available in the release section of the eventuras.
Applying a Migration
Either run the sql script generated by the previous command or run the following command:
dotnet ef database update -s ../Eventuras.WebApi/Eventuras.WebApi.csproj
If you need to run migrations from ssh, you might use the eventurasdb
tool. The efbundle is a self-contained executable that can be run on the server. It is available in the release section of the eventuras.
First add an appsettings.json file to the directory where you want to run the migrations. For example touch appsettings.json && nano appsettings.json
.
The file should look like this:
{
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Database=eventuras;Port=5432;User Id=eventuras;Password=eventuras;Ssl Mode=Require;Trust Server Certificate=True"
},
"Sentry": {
"Dsn": ""
}
}
Then run the following commands:
apt-get update
apt-get install jq
# Find the latest release of the eventurasdb tool and download it
curl -L -o eventurasdb "$(curl -s 'https://api.github.com/repos/losol/eventuras/releases' | jq -r '.[0].assets[] | select(.name == "eventurasdb") | .browser_download_url')"
chmod +x eventurasdb
./eventurasdb
Read more