param() $server = "45.249.208.118" $user = "root" $password = "lxvhNYFZ4160" $projectPath = "/root/youyidian-3d" $plinkPath = "C:\Program Files\PuTTY\plink.exe" if (-not (Test-Path $plinkPath)) { Write-Error "未找到 plink.exe: $plinkPath" exit 1 } $commands = @( "cd $projectPath && docker compose down --timeout 30 || true", "cd $projectPath && docker-compose down --timeout 30 || true", "cd $projectPath && docker compose up -d --build app || docker-compose up -d --build app", "sleep 20", "cd $projectPath && docker compose exec -T app npx prisma@5.22.0 db push --accept-data-loss --skip-generate --schema=/app/prisma/schema.prisma || docker-compose exec -T app npx prisma@5.22.0 db push --accept-data-loss --skip-generate --schema=/app/prisma/schema.prisma", "cd $projectPath && docker compose ps app || docker-compose ps app", "cd $projectPath && docker compose logs app --tail=50 || docker-compose logs app --tail=50" ) foreach ($cmd in $commands) { Write-Host "执行远程命令: $cmd" -ForegroundColor Yellow & $plinkPath -ssh -pw $password -batch "$user@$server" $cmd $exit = $LASTEXITCODE if ($exit -ne 0) { Write-Host " ⚠ 返回码: $exit" -ForegroundColor Yellow } else { Write-Host " ✓ 完成" -ForegroundColor Green } Write-Host "" -ForegroundColor DarkGray }