2023-09-01 23:20:14 +03:00
|
|
|
# ====== Create database backup ==========
|
|
|
|
# WARNING! DO NOT RUN THIS FILE AUTOMATICALLY FROM REPOSITORY LOCATION!
|
|
|
|
# Create a copy in secure location @production host. Update backup scripts from repository manually
|
|
|
|
# ========================================
|
2023-09-19 21:04:59 +03:00
|
|
|
BACKUP_LOCATION="/home/prod/backup"
|
|
|
|
POSTGRE_USER="portal-admin"
|
|
|
|
POSTGRE_DB="portal-db"
|
|
|
|
CONTAINER_DB="portal-db"
|
|
|
|
CONTAINER_BACK="portal-backend"
|
2023-09-01 23:20:14 +03:00
|
|
|
|
2023-09-19 21:04:59 +03:00
|
|
|
DATE_FORMATTED=$(date '+%Y-%m-%d')
|
|
|
|
DESTINATION="${BACKUP_LOCATION}/${DATE_FORMATTED}"
|
2023-09-01 23:20:14 +03:00
|
|
|
|
2023-09-19 21:04:59 +03:00
|
|
|
ensure_location() {
|
|
|
|
rm -rf $DESTINATION
|
|
|
|
mkdir $DESTINATION
|
2023-09-01 23:20:14 +03:00
|
|
|
}
|
|
|
|
|
2023-09-19 21:04:59 +03:00
|
|
|
dump_postgre() {
|
|
|
|
DB_DUMP_FILE="${DESTINATION}/${DATE_FORMATTED}-db.dump"
|
|
|
|
docker exec $CONTAINER_DB pg_dump \
|
|
|
|
--username=$POSTGRE_USER \
|
2023-09-01 23:20:14 +03:00
|
|
|
--exclude-table=django_migrations \
|
|
|
|
--format=custom \
|
2023-09-19 21:04:59 +03:00
|
|
|
--dbname=$POSTGRE_DB \
|
|
|
|
> $DB_DUMP_FILE
|
2023-09-01 23:20:14 +03:00
|
|
|
}
|
|
|
|
|
2023-09-19 21:04:59 +03:00
|
|
|
dump_django() {
|
|
|
|
DATA_DUMP_FILE="${DESTINATION}/${DATE_FORMATTED}-data.json"
|
|
|
|
docker exec $CONTAINER_BACK \
|
2024-06-04 01:43:04 +03:00
|
|
|
python3.12 manage.py dumpdata \
|
2023-09-01 23:20:14 +03:00
|
|
|
--indent=2 \
|
|
|
|
--exclude=admin.LogEntry \
|
|
|
|
--exclude=sessions \
|
|
|
|
--exclude=contenttypes \
|
|
|
|
--exclude=auth.permission \
|
2023-09-19 21:04:59 +03:00
|
|
|
> $DATA_DUMP_FILE
|
|
|
|
gzip --force $DATA_DUMP_FILE
|
2023-09-01 23:20:14 +03:00
|
|
|
}
|
|
|
|
|
2023-09-19 21:04:59 +03:00
|
|
|
create_backup() {
|
|
|
|
ensure_location
|
|
|
|
dump_postgre
|
|
|
|
dump_django
|
|
|
|
|
|
|
|
green="\033[0;32m"
|
|
|
|
noColor='\033[0m'
|
|
|
|
echo -e "${green}Backup created at: ${DESTINATION}${noColor}"
|
|
|
|
}
|
2023-09-08 13:57:49 +03:00
|
|
|
|
2023-09-19 21:04:59 +03:00
|
|
|
create_backup
|