部署优化
This commit is contained in:
@@ -38,9 +38,28 @@ if (-not $SkipBackup) {
|
||||
$backupDir = Join-Path $Root "backups"
|
||||
New-Item -ItemType Directory -Force -Path $backupDir | Out-Null
|
||||
$stamp = Get-Date -Format "yyyyMMdd-HHmmss"
|
||||
$backupFile = Join-Path $backupDir "thebet365-$stamp.sql"
|
||||
$tempFile = Join-Path $backupDir "thebet365-db-prod-init-$stamp.sql"
|
||||
$backupFile = "$tempFile.gz"
|
||||
Write-Host "[prod-init-db] 备份 → $backupFile"
|
||||
docker compose @composeArgs exec -T postgres pg_dump -U thebet365 -d thebet365 -F p | Set-Content -Encoding utf8 $backupFile
|
||||
docker compose @composeArgs exec -T postgres pg_dump -U thebet365 -d thebet365 -F p | Set-Content -Encoding utf8 $tempFile
|
||||
|
||||
$inputStream = [System.IO.File]::OpenRead($tempFile)
|
||||
$outputStream = [System.IO.File]::Create($backupFile)
|
||||
try {
|
||||
$gzipStream = [System.IO.Compression.GzipStream]::new($outputStream, [System.IO.Compression.CompressionMode]::Compress)
|
||||
try {
|
||||
$inputStream.CopyTo($gzipStream)
|
||||
} finally {
|
||||
$gzipStream.Dispose()
|
||||
}
|
||||
} finally {
|
||||
$inputStream.Dispose()
|
||||
$outputStream.Dispose()
|
||||
}
|
||||
Remove-Item $tempFile -Force
|
||||
|
||||
$hash = (Get-FileHash -Algorithm SHA256 $backupFile).Hash.ToLowerInvariant()
|
||||
"$hash $(Split-Path -Leaf $backupFile)" | Set-Content -Encoding UTF8 "$backupFile.sha256"
|
||||
} else {
|
||||
Write-Host "[prod-init-db] 已跳过备份"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user