C# Entity Create Migration Script (Powershell)

Date: 2023-03-21
# Fetch list of migrations
$entryProject = "..\WebApi\WebApi.csproj"
$project = "..\DbAdapter\DbAdapter.csproj"
$migration_name = (Read-Host "Enter new migration name").Trim().Replace(" ","_")
# create migration
Write-Host "Adding migration '$migration_name'"
dotnet ef migrations add -p $project -s $entryProject $migration_name 
# create migration script
Write-Host "Fetching list of migrations..."
$migrations = dotnet ef migrations list -p $project -s $entryProject --prefix-output --json | Where-Object { $_.StartsWith('data:') } | ForEach-Object { $_.Substring(5) } | ConvertFrom-Json
$previousMigration = $migrations[-2].id
$createdMigration = $migrations[-1].id
Write-Host "Last migration is '$previousMigration'"
Write-Host "Created migration is '$createdMigration'"
$sql_path = "../DatabaseUpdater/Scripts/$createdMigration.sql"
Write-Host "`"$sql_path`" will be used."
dotnet ef migrations script -p $project -s $entryProject -o "$sql_path" "$previousMigration" --no-transactions

75960cookie-checkC# Entity Create Migration Script (Powershell)