166 lines
6.1 KiB
PowerShell
166 lines
6.1 KiB
PowerShell
# PowerShell script — DBeaver Connecties Automatisch Toevoegen
|
|
# ============================================================
|
|
# Dit script detecteert DBeaver en voegt PostgreSQL + Neo4j connecties toe.
|
|
#
|
|
# Gebruik:
|
|
# powershell -ExecutionPolicy Bypass -File setup_dbeaver.ps1
|
|
|
|
$ErrorActionPreference = "Stop"
|
|
|
|
Write-Host "=== DBeaver Connectie Setup ===" -ForegroundColor Cyan
|
|
Write-Host ""
|
|
|
|
# 1. Zoek DBeaver installatie
|
|
$dbeaverPaths = @(
|
|
"$env:APPDATA\DBeaverData",
|
|
"$env:LOCALAPPDATA\DBeaver",
|
|
"$env:USERPROFILE\AppData\Roaming\DBeaverData",
|
|
"$env:USERPROFILE\.dbeaver"
|
|
)
|
|
|
|
$found = $false
|
|
foreach ($path in $dbeaverPaths) {
|
|
if (Test-Path $path) {
|
|
Write-Host "DBeaver data gevonden op: $path" -ForegroundColor Green
|
|
$found = $true
|
|
|
|
# Zoek alle workspace directories
|
|
$workspaces = Get-ChildItem -Path $path -Directory -Filter "workspace*" -ErrorAction SilentlyContinue
|
|
|
|
foreach ($ws in $workspaces) {
|
|
$dbeaverDir = Join-Path $ws.FullName "General\.dbeaver"
|
|
if (-not (Test-Path $dbeaverDir)) {
|
|
New-Item -ItemType Directory -Path $dbeaverDir -Force | Out-Null
|
|
}
|
|
|
|
$configFile = Join-Path $dbeaverDir "data-sources.json"
|
|
|
|
Write-Host " Workspace: $($ws.Name) -> $configFile" -ForegroundColor Gray
|
|
|
|
# Lees bestaande config (of maak nieuwe)
|
|
$config = $null
|
|
if (Test-Path $configFile) {
|
|
try {
|
|
$config = Get-Content $configFile -Raw | ConvertFrom-Json
|
|
Write-Host " Bestaande config gevonden: $(($config.connections.PSObject.Properties | Measure-Object).Count) connecties" -ForegroundColor Gray
|
|
} catch {
|
|
Write-Host " Waarschuwing: Kon bestaande config niet lezen, maak nieuwe" -ForegroundColor Yellow
|
|
}
|
|
}
|
|
|
|
if (-not $config -or -not $config.connections) {
|
|
$config = [PSCustomObject]@{
|
|
folders = @{}
|
|
connections = @{}
|
|
}
|
|
}
|
|
|
|
# Voeg PostgreSQL connectie toe (als die nog niet bestaat)
|
|
$pgConnId = "postgresql-homelab-dashboard"
|
|
if (-not $config.connections.$pgConnId) {
|
|
$config.connections | Add-Member -MemberType NoteProperty -Name $pgConnId -Value ([PSCustomObject]@{
|
|
provider = "postgresql"
|
|
driver = "postgresql-jdbc"
|
|
name = "Homelab PostgreSQL (Dashboard)"
|
|
host = "192.168.1.211"
|
|
port = "5433"
|
|
database = "homelab"
|
|
user = "mo"
|
|
password = "WaQTUw2t"
|
|
savePassword = $true
|
|
configurationType = "MANUAL"
|
|
showSystemObjects = $false
|
|
properties = @{
|
|
connectTimeout = "20"
|
|
loginTimeout = "20"
|
|
}
|
|
})
|
|
Write-Host " + PostgreSQL connectie toegevoegd" -ForegroundColor Green
|
|
} else {
|
|
Write-Host " PostgreSQL connectie bestaat al" -ForegroundColor Gray
|
|
}
|
|
|
|
# Voeg Neo4j connectie toe
|
|
$neoConnId = "neo4j-homelab-network"
|
|
if (-not $config.connections.$neoConnId) {
|
|
$config.connections | Add-Member -MemberType NoteProperty -Name $neoConnId -Value ([PSCustomObject]@{
|
|
provider = "neo4j"
|
|
driver = "neo4j-jdbc"
|
|
name = "Homelab Neo4j (Netwerk)"
|
|
host = "192.168.1.211"
|
|
port = "49153"
|
|
url = "neo4j://192.168.1.211:49153"
|
|
user = "neo4j"
|
|
password = "WaQTUw2t"
|
|
savePassword = $true
|
|
configurationType = "MANUAL"
|
|
})
|
|
Write-Host " + Neo4j connectie toegevoegd" -ForegroundColor Green
|
|
} else {
|
|
Write-Host " Neo4j connectie bestaat al" -ForegroundColor Gray
|
|
}
|
|
|
|
# Schrijf config terug
|
|
$config | ConvertTo-Json -Depth 5 | Set-Content $configFile -Encoding UTF8
|
|
Write-Host " Config opgeslagen!" -ForegroundColor Green
|
|
}
|
|
break
|
|
}
|
|
}
|
|
|
|
if (-not $found) {
|
|
Write-Host "DBeaver NIET gevonden op dit systeem!" -ForegroundColor Yellow
|
|
Write-Host ""
|
|
Write-Host "Handmatig DBeaver connecties toevoegen:" -ForegroundColor White
|
|
Write-Host ""
|
|
Write-Host "1. Open DBeaver"
|
|
Write-Host "2. Database → New Database Connection"
|
|
Write-Host ""
|
|
Write-Host "PostgreSQL:"
|
|
Write-Host " Host: 192.168.1.211 Port: 5433"
|
|
Write-Host " Database: homelab User: mo"
|
|
Write-Host ""
|
|
Write-Host "Neo4j:"
|
|
Write-Host " URI: neo4j://192.168.1.211:49153"
|
|
Write-Host " User: neo4j"
|
|
Write-Host ""
|
|
|
|
# Maak een import-bestand voor later gebruik
|
|
$importConfig = @"
|
|
{
|
|
"folders": {},
|
|
"connections": {
|
|
"postgresql-homelab": {
|
|
"provider": "postgresql",
|
|
"driver": "postgresql-jdbc",
|
|
"name": "Homelab PostgreSQL",
|
|
"host": "192.168.1.211",
|
|
"port": "5433",
|
|
"database": "homelab",
|
|
"user": "mo",
|
|
"savePassword": true,
|
|
"configurationType": "MANUAL"
|
|
},
|
|
"neo4j-homelab": {
|
|
"provider": "neo4j",
|
|
"driver": "neo4j-jdbc",
|
|
"name": "Homelab Neo4j",
|
|
"url": "neo4j://192.168.1.211:49153",
|
|
"user": "neo4j",
|
|
"savePassword": true,
|
|
"configurationType": "MANUAL"
|
|
}
|
|
}
|
|
}
|
|
"@
|
|
$importFile = Join-Path $PSScriptRoot "dbeaver-connections-import.json"
|
|
$importConfig | Set-Content $importFile -Encoding UTF8
|
|
Write-Host "Import-bestand gemaakt: $importFile" -ForegroundColor Green
|
|
Write-Host ""
|
|
Write-Host "In DBeaver: File → Import → DBeaver → Connections"
|
|
Write-Host "Selecteer: $importFile"
|
|
}
|
|
|
|
Write-Host ""
|
|
Write-Host "Let op: herstart DBeaver om de connecties te zien!" -ForegroundColor Cyan
|