Spaces:
Sleeping
Sleeping
| param( | |
| [string]$Server = ".\SQLEXPRESS", | |
| [string]$Database = "CustomerAIDemo2022", | |
| [Parameter(Mandatory = $true)] | |
| [string]$CsvPath, | |
| [switch]$SqlAuth, | |
| [string]$User, | |
| [string]$Password | |
| ) | |
| $ErrorActionPreference = "Stop" | |
| $resolvedCsv = (Resolve-Path -LiteralPath $CsvPath).Path | |
| if (-not (Test-Path -LiteralPath $resolvedCsv)) { | |
| throw "CSV not found: $resolvedCsv" | |
| } | |
| $repoRoot = Split-Path -Parent $PSScriptRoot | |
| $inputFile = Join-Path $repoRoot "sql\compat_2022_csv_seed.sql" | |
| # sqlcmd's -v parser strips the drive letter from paths with colons (e.g. D:\...), | |
| # so substitute the variables in PowerShell and pipe the rendered SQL via stdin. | |
| $sql = Get-Content -LiteralPath $inputFile -Raw -Encoding UTF8 | |
| $sql = $sql -replace '\$\(DemoDatabase\)', $Database | |
| $sql = $sql -replace '\$\(CsvPath\)', $resolvedCsv | |
| $tempFile = [System.IO.Path]::GetTempFileName() | |
| $tempFile = [System.IO.Path]::ChangeExtension($tempFile, '.sql') | |
| [System.IO.File]::WriteAllText($tempFile, $sql, [System.Text.UTF8Encoding]::new($false)) | |
| $sqlcmdArgs = @( | |
| "-S", $Server, | |
| "-b", | |
| "-f", "i:65001,o:65001", | |
| "-i", $tempFile | |
| ) | |
| if ($SqlAuth) { | |
| $sqlcmdArgs += @("-U", $User, "-P", $Password) | |
| } else { | |
| $sqlcmdArgs += "-E" | |
| } | |
| Write-Host "Importing $resolvedCsv into $Server / $Database (fallback 2022 schema)..." | |
| try { | |
| & sqlcmd @sqlcmdArgs | |
| } finally { | |
| Remove-Item -LiteralPath $tempFile -Force -ErrorAction SilentlyContinue | |
| } | |
| if ($LASTEXITCODE -ne 0) { | |
| throw "sqlcmd failed for $inputFile with exit code $LASTEXITCODE." | |
| } | |
| Write-Host "" | |
| Write-Host "CSV import complete." | |
| Write-Host "Next: .\scripts\build_real_embeddings_ollama.ps1 -Server '$Server' -Database '$Database' -Model 'bge-m3'" | |