Initial commit
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
$ErrorActionPreference = "Stop"
|
||||
$timestamp = Get-Date -Format "yyyyMMdd-HHmmss"
|
||||
$backupDir = Join-Path $PSScriptRoot "..\backups\$timestamp"
|
||||
New-Item -ItemType Directory -Path $backupDir -Force | Out-Null
|
||||
|
||||
$dbUser = if ($env:POSTGRES_USER) { $env:POSTGRES_USER } else { "ielts_mock" }
|
||||
$dbName = if ($env:POSTGRES_DB) { $env:POSTGRES_DB } else { "ielts_mock" }
|
||||
|
||||
docker compose exec -T db pg_dump -U $dbUser -d $dbName -Fc -f /tmp/ielts-mock.dump
|
||||
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
|
||||
docker compose cp "db:/tmp/ielts-mock.dump" (Join-Path $backupDir "database.dump")
|
||||
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
|
||||
docker compose exec -T db rm -f /tmp/ielts-mock.dump
|
||||
|
||||
docker compose exec -T web tar -czf /tmp/ielts-media.tar.gz -C /app media
|
||||
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
|
||||
docker compose cp "web:/tmp/ielts-media.tar.gz" (Join-Path $backupDir "media.tar.gz")
|
||||
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
|
||||
docker compose exec -T web rm -f /tmp/ielts-media.tar.gz
|
||||
|
||||
Write-Host "Backup completed: $backupDir"
|
||||
@@ -0,0 +1,18 @@
|
||||
#!/bin/sh
|
||||
set -eu
|
||||
|
||||
timestamp="$(date +%Y%m%d-%H%M%S)"
|
||||
backup_dir="./backups/$timestamp"
|
||||
mkdir -p "$backup_dir"
|
||||
db_user="${POSTGRES_USER:-ielts_mock}"
|
||||
db_name="${POSTGRES_DB:-ielts_mock}"
|
||||
|
||||
docker compose exec -T db pg_dump -U "$db_user" -d "$db_name" -Fc -f /tmp/ielts-mock.dump
|
||||
docker compose cp db:/tmp/ielts-mock.dump "$backup_dir/database.dump"
|
||||
docker compose exec -T db rm -f /tmp/ielts-mock.dump
|
||||
|
||||
docker compose exec -T web tar -czf /tmp/ielts-media.tar.gz -C /app media
|
||||
docker compose cp web:/tmp/ielts-media.tar.gz "$backup_dir/media.tar.gz"
|
||||
docker compose exec -T web rm -f /tmp/ielts-media.tar.gz
|
||||
|
||||
echo "Backup completed: $backup_dir"
|
||||
@@ -0,0 +1,17 @@
|
||||
$ErrorActionPreference = "Stop"
|
||||
$projectRoot = (Resolve-Path (Join-Path $PSScriptRoot "..")).Path
|
||||
$timestamp = Get-Date -Format "yyyyMMdd-HHmmss"
|
||||
$backupDir = Join-Path $projectRoot "backups\local-$timestamp"
|
||||
New-Item -ItemType Directory -Path $backupDir -Force | Out-Null
|
||||
|
||||
$database = Join-Path $projectRoot "db.sqlite3"
|
||||
if (Test-Path -LiteralPath $database) {
|
||||
Copy-Item -LiteralPath $database -Destination (Join-Path $backupDir "db.sqlite3")
|
||||
}
|
||||
|
||||
$media = Join-Path $projectRoot "media"
|
||||
if (Test-Path -LiteralPath $media) {
|
||||
Compress-Archive -LiteralPath $media -DestinationPath (Join-Path $backupDir "media.zip")
|
||||
}
|
||||
|
||||
Write-Host "Local backup completed: $backupDir"
|
||||
@@ -0,0 +1,20 @@
|
||||
$ErrorActionPreference = "Stop"
|
||||
$env:DJANGO_DEBUG = "False"
|
||||
$env:DJANGO_SECRET_KEY = "local-deployment-check-secret-with-more-than-fifty-characters-123456789"
|
||||
$env:DJANGO_ALLOWED_HOSTS = "localhost,127.0.0.1,testserver"
|
||||
$env:DJANGO_CSRF_TRUSTED_ORIGINS = "https://example.com"
|
||||
$env:DJANGO_SECURE_HSTS_SECONDS = "3600"
|
||||
$env:DJANGO_SECURE_HSTS_INCLUDE_SUBDOMAINS = "True"
|
||||
$env:DJANGO_SECURE_HSTS_PRELOAD = "True"
|
||||
|
||||
python manage.py makemigrations --check --dry-run
|
||||
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
|
||||
python manage.py check --deploy
|
||||
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
|
||||
python manage.py collectstatic --noinput
|
||||
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
|
||||
$env:DJANGO_DEBUG = "True"
|
||||
$env:DJANGO_SECURE_SSL_REDIRECT = "False"
|
||||
$env:DJANGO_ACCOUNT_EMAIL_VERIFICATION = "none"
|
||||
python manage.py test
|
||||
exit $LASTEXITCODE
|
||||
Reference in New Issue
Block a user