mirror of
https://github.com/hansjone/netx.git
synced 2026-10-09 00:50:46 +08:00
fix(setup): avoid DO $$ in init_pg role bootstrap
Replace the DO-block role upsert with explicit role existence check plus CREATE/ALTER statements, preventing PowerShell/psql quoting issues on some Windows setups. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
a0264e5e94
commit
dbe3062d1b
1 changed files with 9 additions and 12 deletions
|
|
@ -44,18 +44,15 @@ $env:PGPASSWORD = $SuperPassword
|
|||
|
||||
try {
|
||||
Write-Host "==> Ensuring role '$NetxUser'"
|
||||
$roleSql = @"
|
||||
DO `$\$
|
||||
BEGIN
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = '$NetxUser') THEN
|
||||
CREATE ROLE $NetxUser LOGIN PASSWORD '$NetxPassword';
|
||||
ELSE
|
||||
ALTER ROLE $NetxUser WITH LOGIN PASSWORD '$NetxPassword';
|
||||
END IF;
|
||||
END
|
||||
`$\$;
|
||||
"@
|
||||
Invoke-Psql -Database "postgres" -Sql $roleSql
|
||||
$roleExists = & psql -h $PgHost -p $PgPort -U $SuperUser -d postgres -tAc "SELECT 1 FROM pg_roles WHERE rolname='$NetxUser'"
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
throw "psql_failed (query role exists)"
|
||||
}
|
||||
if (-not ($roleExists -match "1")) {
|
||||
Invoke-Psql -Database "postgres" -Sql "CREATE ROLE $NetxUser LOGIN PASSWORD '$NetxPassword';"
|
||||
} else {
|
||||
Invoke-Psql -Database "postgres" -Sql "ALTER ROLE $NetxUser WITH LOGIN PASSWORD '$NetxPassword';"
|
||||
}
|
||||
|
||||
Write-Host "==> Ensuring database '$NetxDatabase'"
|
||||
$dbExists = & psql -h $PgHost -p $PgPort -U $SuperUser -d postgres -tAc "SELECT 1 FROM pg_database WHERE datname='$NetxDatabase'"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue