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)" }