38 lines
952 B
PowerShell
38 lines
952 B
PowerShell
param(
|
|
[string]$Host = "120.53.222.17",
|
|
[int]$Port = 5432,
|
|
[string]$AdminUser = "postgres",
|
|
[string]$AdminPassword = ""
|
|
)
|
|
|
|
if (-not (Get-Command psql -ErrorAction SilentlyContinue)) {
|
|
throw "psql command not found. Add PostgreSQL bin directory to PATH."
|
|
}
|
|
|
|
if ([string]::IsNullOrWhiteSpace($AdminPassword)) {
|
|
Write-Warning "AdminPassword not provided. You will be prompted by psql."
|
|
}
|
|
|
|
$sqlPath = Join-Path $PSScriptRoot "create_databases.sql"
|
|
if (-not (Test-Path $sqlPath)) {
|
|
throw "Cannot find create_databases.sql under $PSScriptRoot."
|
|
}
|
|
|
|
$env:PGPASSWORD = $AdminPassword
|
|
|
|
$arguments = @(
|
|
"-h", $Host,
|
|
"-p", $Port,
|
|
"-U", $AdminUser,
|
|
"-f", $sqlPath
|
|
)
|
|
|
|
Write-Host "Executing create_databases.sql on $Host:$Port as $AdminUser ..."
|
|
& psql @arguments
|
|
|
|
if ($LASTEXITCODE -ne 0) {
|
|
throw "psql returned non-zero exit code ($LASTEXITCODE)."
|
|
}
|
|
|
|
Write-Host "PostgreSQL databases and roles ensured successfully."
|