Sure! Pl
This commit is contained in:
119
setup/setup-database.ps1
Normal file
119
setup/setup-database.ps1
Normal file
@@ -0,0 +1,119 @@
|
||||
# PowerShell Script zum Setup der Appwrite-Datenbank
|
||||
# Dieses Skript erstellt die Datenbank und führt das Schema-Setup aus
|
||||
|
||||
$ErrorActionPreference = "Continue"
|
||||
|
||||
Write-Host "=== Appwrite Datenbank Setup ===" -ForegroundColor Cyan
|
||||
Write-Host ""
|
||||
|
||||
# 1. Prüfe Login-Status
|
||||
Write-Host "1. Prüfe Appwrite Login-Status..." -ForegroundColor Yellow
|
||||
$loginCheck = appwrite databases list 2>&1
|
||||
|
||||
if ($LASTEXITCODE -ne 0 -and $loginCheck -like "*Session not found*") {
|
||||
Write-Host " [WARNUNG] Nicht eingeloggt. Bitte zuerst einloggen:" -ForegroundColor Red
|
||||
Write-Host " appwrite login" -ForegroundColor White
|
||||
Write-Host ""
|
||||
Write-Host " Führe diesen Befehl jetzt aus..." -ForegroundColor Yellow
|
||||
appwrite login
|
||||
Write-Host ""
|
||||
}
|
||||
|
||||
# 2. Erstelle oder verwende vorhandene Datenbank
|
||||
$DATABASE_ID = "eship-db"
|
||||
$DATABASE_NAME = "eship-database"
|
||||
|
||||
Write-Host "2. Prüfe ob Datenbank '$DATABASE_ID' existiert..." -ForegroundColor Yellow
|
||||
|
||||
# Versuche die Datenbank zu finden
|
||||
$dbList = appwrite databases list 2>&1
|
||||
$dbExists = $dbList -like "*$DATABASE_ID*"
|
||||
|
||||
if (-not $dbExists) {
|
||||
Write-Host " Datenbank nicht gefunden. Erstelle neue Datenbank..." -ForegroundColor Yellow
|
||||
$createResult = appwrite databases create --name $DATABASE_NAME --database-id $DATABASE_ID 2>&1
|
||||
|
||||
if ($LASTEXITCODE -eq 0) {
|
||||
Write-Host " [OK] Datenbank '$DATABASE_ID' erfolgreich erstellt!" -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host " [WARNUNG] Fehler beim Erstellen der Datenbank." -ForegroundColor Yellow
|
||||
Write-Host " Verwende ID: $DATABASE_ID" -ForegroundColor Gray
|
||||
Write-Host " Stelle sicher, dass die Datenbank-ID korrekt ist." -ForegroundColor Yellow
|
||||
}
|
||||
} else {
|
||||
Write-Host " [OK] Datenbank '$DATABASE_ID' existiert bereits!" -ForegroundColor Green
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "3. Erstelle Datenbank-Schema..." -ForegroundColor Yellow
|
||||
Write-Host " Dies kann einige Minuten dauern..." -ForegroundColor Gray
|
||||
Write-Host ""
|
||||
|
||||
# Aktualisiere DATABASE_ID im Bash-Skript
|
||||
$schemaScriptContent = Get-Content "appwrite_schema.sh" -Raw -Encoding UTF8
|
||||
$oldDatabaseIdPattern = 'DATABASE_ID="YOUR_DATABASE_ID"'
|
||||
$newDatabaseIdValue = "DATABASE_ID=`"$DATABASE_ID`""
|
||||
$schemaScriptContent = $schemaScriptContent -replace [regex]::Escape($oldDatabaseIdPattern), $newDatabaseIdValue
|
||||
Set-Content -Path "appwrite_schema.sh" -Value $schemaScriptContent -NoNewline -Encoding UTF8
|
||||
|
||||
Write-Host " DATABASE_ID im Schema-Skript auf '$DATABASE_ID' gesetzt" -ForegroundColor Green
|
||||
Write-Host ""
|
||||
|
||||
# Prüfe ob Git Bash oder WSL verfügbar ist
|
||||
$bashPath = $null
|
||||
$useBash = $false
|
||||
|
||||
# Versuche Git Bash zu finden
|
||||
if (Test-Path "C:\Program Files\Git\bin\bash.exe") {
|
||||
$bashPath = "C:\Program Files\Git\bin\bash.exe"
|
||||
$useBash = $true
|
||||
} elseif (Test-Path "C:\Program Files (x86)\Git\bin\bash.exe") {
|
||||
$bashPath = "C:\Program Files (x86)\Git\bin\bash.exe"
|
||||
$useBash = $true
|
||||
} else {
|
||||
# Prüfe ob WSL verfügbar ist
|
||||
$wslCheck = wsl --list 2>&1
|
||||
if ($LASTEXITCODE -eq 0) {
|
||||
$useBash = $true
|
||||
$bashPath = "wsl"
|
||||
}
|
||||
}
|
||||
|
||||
if ($useBash) {
|
||||
Write-Host "4. Führe Schema-Skript aus (über Bash)..." -ForegroundColor Yellow
|
||||
Write-Host ""
|
||||
|
||||
$scriptPath = (Resolve-Path "appwrite_schema.sh").Path
|
||||
|
||||
if ($bashPath -eq "wsl") {
|
||||
# Konvertiere Windows-Pfad zu WSL-Pfad
|
||||
$driveLetter = $scriptPath.Substring(0, 1).ToLower()
|
||||
$remainingPath = $scriptPath.Substring(3) -replace '\\', '/'
|
||||
$wslPath = "/mnt/$driveLetter$remainingPath"
|
||||
wsl bash $wslPath
|
||||
} else {
|
||||
& $bashPath $scriptPath
|
||||
}
|
||||
|
||||
if ($LASTEXITCODE -eq 0) {
|
||||
Write-Host ""
|
||||
Write-Host "[OK] Schema-Setup erfolgreich abgeschlossen!" -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host ""
|
||||
Write-Host "[WARNUNG] Schema-Setup abgeschlossen (einige Fehler wurden ignoriert)" -ForegroundColor Yellow
|
||||
}
|
||||
} else {
|
||||
Write-Host "4. Bash nicht gefunden." -ForegroundColor Yellow
|
||||
Write-Host ""
|
||||
Write-Host " Option 1: Installiere Git Bash und führe dann aus:" -ForegroundColor White
|
||||
Write-Host " bash appwrite_schema.sh" -ForegroundColor Cyan
|
||||
Write-Host ""
|
||||
Write-Host " Option 2: Siehe DATABASE_SETUP.md für manuelle Anweisungen" -ForegroundColor White
|
||||
Write-Host ""
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "=== Setup abgeschlossen ===" -ForegroundColor Cyan
|
||||
Write-Host ""
|
||||
Write-Host "Datenbank-ID: $DATABASE_ID" -ForegroundColor White
|
||||
Write-Host "Du kannst die Datenbank in der Appwrite-Konsole überprüfen." -ForegroundColor Gray
|
||||
Reference in New Issue
Block a user