35 lines
945 B
PowerShell
35 lines
945 B
PowerShell
param(
|
|
[Parameter(Mandatory = $true)]
|
|
[string]$Scenario,
|
|
|
|
[string]$ConnectString,
|
|
|
|
[string]$SqlClient = "sql"
|
|
)
|
|
|
|
$ErrorActionPreference = "Stop"
|
|
|
|
$repoRoot = Split-Path -Parent $PSScriptRoot
|
|
$scenarioDir = Join-Path $repoRoot "scenarios/$Scenario"
|
|
$sqlDir = Join-Path $scenarioDir "sql"
|
|
|
|
if (-not (Test-Path $sqlDir)) {
|
|
throw "Scenario SQL directory not found: $sqlDir"
|
|
}
|
|
|
|
$scripts = Get-ChildItem -Path $sqlDir -Filter "*.sql" | Where-Object { $_.Name -ne "99_reset.sql" } | Sort-Object Name
|
|
|
|
Write-Host "Scenario: $Scenario"
|
|
Write-Host "Scripts to execute:"
|
|
$scripts | ForEach-Object { Write-Host " - $($_.Name)" }
|
|
|
|
if ([string]::IsNullOrWhiteSpace($ConnectString)) {
|
|
Write-Warning "ConnectString not provided. Review the SQL files above and execute them manually with SQLcl or SQL*Plus."
|
|
exit 0
|
|
}
|
|
|
|
foreach ($script in $scripts) {
|
|
Write-Host "Running $($script.FullName)"
|
|
& $SqlClient $ConnectString "@$($script.FullName)"
|
|
}
|