File size: 1,446 Bytes
f53fbd9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
param(
    [string]$Server = "localhost",
    [string]$Database = "CustomerAIDemo",
    [string]$CsvPath = "D:\DSA\Demo_DBMS\data\customer_feedback.csv",
    [switch]$SqlAuth,
    [string]$User,
    [string]$Password
)

$ErrorActionPreference = "Stop"

function Invoke-SqlFile {
    param(
        [string]$InputFile,
        [string[]]$Variables = @()
    )

    $args = @("-S", $Server, "-b", "-f", "i:65001,o:65001", "-i", $InputFile)

    if ($SqlAuth) {
        $args += @("-U", $User, "-P", $Password)
    }
    else {
        $args += "-E"
    }

    foreach ($variable in $Variables) {
        $args += @("-v", $variable)
    }

    Write-Host "Running $InputFile"
    & sqlcmd @args

    if ($LASTEXITCODE -ne 0) {
        throw "sqlcmd failed for $InputFile with exit code $LASTEXITCODE."
    }
}

$repoRoot = Split-Path -Parent $PSScriptRoot
$absoluteCsv = (Resolve-Path -LiteralPath $CsvPath).Path

Invoke-SqlFile -InputFile (Join-Path $repoRoot "sql\00_setup_database.sql") -Variables @("DemoDatabase=$Database")
Invoke-SqlFile -InputFile (Join-Path $repoRoot "sql\01_schema.sql") -Variables @("DemoDatabase=$Database")
Invoke-SqlFile -InputFile (Join-Path $repoRoot "sql\03_import_csv.sql") -Variables @("DemoDatabase=$Database", "CsvPath=$absoluteCsv")

Write-Host "Database and seed data are ready."
Write-Host "Next: run sql\02_register_external_model_ollama.sql, sql\04_generate_embeddings.sql, sql\05_create_vector_index.sql."