You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.9 KiB
67 lines
1.9 KiB
#!/usr/bin/env pwsh |
|
# Creates the vault_dev database, and runs all the migrations. |
|
|
|
# Due to azure-edge-sql not containing the mssql-tools on ARM, we manually use |
|
# the mssql-tools container which runs under x86_64. |
|
|
|
param( |
|
[switch]$all, |
|
[switch]$postgres, |
|
[switch]$mysql, |
|
[switch]$mssql, |
|
[switch]$sqlite, |
|
[switch]$selfhost |
|
) |
|
|
|
# Abort on any error |
|
$ErrorActionPreference = "Stop" |
|
|
|
if (!$all -and !$postgres -and !$mysql -and !$sqlite) { |
|
$mssql = $true; |
|
} |
|
|
|
if ($all -or $postgres -or $mysql -or $sqlite) { |
|
dotnet ef *> $null |
|
if ($LASTEXITCODE -ne 0) { |
|
Write-Host "Entity Framework Core tools were not found in the dotnet global tools. Attempting to install" |
|
dotnet tool install dotnet-ef -g |
|
} |
|
} |
|
|
|
if ($all -or $mssql) { |
|
function Get-UserSecrets { |
|
return dotnet user-secrets list --json --project ../src/Api | ConvertFrom-Json |
|
} |
|
|
|
if ($selfhost) { |
|
$msSqlConnectionString = $(Get-UserSecrets).'dev:selfHostOverride:globalSettings:sqlServer:connectionString' |
|
$envName = "self-host" |
|
|
|
Write-Output "Migrating your migrations to use MsSqlMigratorUtility (if needed)" |
|
./migrate_migration_record.ps1 -s |
|
} else { |
|
$msSqlConnectionString = $(Get-UserSecrets).'globalSettings:sqlServer:connectionString' |
|
$envName = "cloud" |
|
|
|
Write-Output "Migrating your migrations to use MsSqlMigratorUtility (if needed)" |
|
./migrate_migration_record.ps1 |
|
} |
|
|
|
Write-Host "Starting Microsoft SQL Server Migrations for $envName" |
|
|
|
dotnet run --project ../util/MsSqlMigratorUtility/ "$msSqlConnectionString" |
|
} |
|
|
|
$currentDir = Get-Location |
|
|
|
Foreach ($item in @(@($mysql, "MySQL", "MySqlMigrations"), @($postgres, "PostgreSQL", "PostgresMigrations"), @($sqlite, "SQLite", "SqliteMigrations"))) { |
|
if (!$item[0] -and !$all) { |
|
continue |
|
} |
|
|
|
Write-Host "Starting $($item[1]) Migrations" |
|
Set-Location "$currentDir/../util/$($item[2])/" |
|
dotnet ef database update |
|
} |
|
|
|
Set-Location "$currentDir"
|
|
|