ps/Modules/Alkami.PowerShell.SDK/Public/Invoke-DatabaseMigrationAlkamiTenantTask.ps1

55 lines
2.1 KiB
PowerShell
Raw Permalink Normal View History

2023-05-30 22:51:22 -07:00
function Invoke-DatabaseMigrationAlkamiTenantTask {
param (
$connectionString,
$hasTenant
)
Write-Warning "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
Write-Warning "!! THIS FEATURE WILL BE DEPRECATED. PLEASE CONTACT SDK TEAM TO REMOVE !!"
Write-Warning "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
$migrationPath = (Join-Path (Get-MigrationRunnerPath) "Alkami.Tools.TenantMigration.dll")
if ($hasTenant) {
if (!(Confirm-DatabaseAccess $connectionString)) {
throw "could not connect to $connectionString"
}
Write-Host "Migrating database for `[$connectionString`]"
Invoke-Migrate $connectionString "" $migrationPath "SetupDynamicDbForSDK"
} else {
$databaseName = "AlkamiMaster"
if (!$connectionString) {
$connectionString = (Get-FormattedConnectionString '.' $databaseName)
}
## Ensure the local tenant exists just in case it doesn't yet.
Import-DeveloperDynamicTenant $connectionString
if (!(Test-DatabaseExists $connectionString "DeveloperDynamic")) {
$consume = Initialize-AlkamiDatabase $connectionString "DeveloperDynamic"
}
## Get tenants for migrating
$fullTenants = (Get-FullTenantListFromServer $connectionString)
$tenants = $fullTenants
Write-Host "get tenants"
$tenantWhitelist += @((Get-DeveloperTenant).BankGuid.ToString())
$chocolateyParameters = @($chocolateyParameters,@() -ne $null)[0]
$tenantWhitelist += @($chocolateyParameters["TenantWhitelist"] -split ',')
if ($tenantWhitelist.Count -gt 0) {
$tenants = $fullTenants | ? { $tenantWhitelist.Contains($_.BankGuid.ToString()) }
}
## Run the migrations
$tenants | % {
$tenant = $_
Write-Host "Migrating database for `[$($tenant.Name) $($tenant.Signature)`]"
Invoke-Migrate $tenant.ConnectionString $tenant.Catalog $migrationPath "SetupDynamicDbForSDK"
}
}
}