db_backup_tool.bat 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. :: Set database configuration
  4. set DB_NAME=soilgd
  5. set DB_USER=postgres
  6. set BACKUP_DIR=backups
  7. :: Generate timestamp (format: YYYYMMDD_HHMMSS)
  8. :: Use simple PowerShell command to get timestamp
  9. for /f %%i in ('powershell -command "Get-Date -Format 'yyyyMMdd_HHmmss'"') do set TIMESTAMP=%%i
  10. echo =====================================
  11. echo PostgreSQL Database Backup Tool
  12. echo =====================================
  13. echo.
  14. :: Create backup directory if not exists
  15. if not exist "%BACKUP_DIR%" (
  16. echo Creating backup directory: %BACKUP_DIR%
  17. mkdir "%BACKUP_DIR%"
  18. )
  19. :: Set backup filename
  20. set BACKUP_FILE=%BACKUP_DIR%\%DB_NAME%_backup_%TIMESTAMP%.dump
  21. echo Starting database backup: %DB_NAME%
  22. echo Backup file: %BACKUP_FILE%
  23. echo.
  24. :: Execute backup command
  25. echo Executing backup...
  26. pg_dump -U %DB_USER% -Fc %DB_NAME% > "%BACKUP_FILE%"
  27. :: Check if backup was successful
  28. if %ERRORLEVEL% EQU 0 (
  29. echo.
  30. echo Backup completed successfully!
  31. echo Backup file saved to: %BACKUP_FILE%
  32. :: Display file size
  33. for %%A in ("%BACKUP_FILE%") do (
  34. echo Backup file size: %%~zA bytes
  35. )
  36. ) else (
  37. echo.
  38. echo Backup failed! Please check:
  39. echo 1. Is PostgreSQL service running?
  40. echo 2. Does database %DB_NAME% exist?
  41. echo 3. Does user %DB_USER% have permissions?
  42. echo 4. Is pg_dump command in system PATH?
  43. )
  44. echo.
  45. echo Backup operation completed.
  46. pause