Part-DB-server icon indicating copy to clipboard operation
Part-DB-server copied to clipboard

[Helm/Kubernetes] Add Documentation / Examples for Backup / Restoring.

Open XtremeOwnageDotCom opened this issue 10 months ago • 0 comments

A simple request to update the documentation to add kubernetes-specific examples for backing up data, and restoring data.

I have example scripts which I created for the purposes of backing up and restoring my own instance.

Backup Script / Commands

#!/bin/bash

# Namespace which contains part-db
NAMESPACE="part-db"

# The container's name (Not POD!) This... shouldn't change.
CONTAINER_NAME="part-db"

# The name of the pod. This, will change depending on your release.
POD_NAME="parts-db-part-db-0"

# Path inside of the container where the backup will be created
CONTAINER_BACKUP_PATH="/tmp/partsdb_backup.zip"

# Where we want to store the resulting backup. (Relative to current directory)
BACKUP_DESTINATION="mybackup.zip"


kubectl exec -it -n $NAMESPACE -c $CONTAINER_NAME $POD_NAME -- php bin/console partdb:backup --full $CONTAINER_BACKUP_PATH
kubectl cp       -n $NAMESPACE -c $CONTAINER_NAME $POD_NAME:$CONTAINER_BACKUP_PATH $BACKUP_DESTINATION

Restore Script / Commands

#!/bin/bash

# Backup file relative to current directory. (partsdb.zip exists in my current directory)
BACKUP_FILE="partsdb.zip"

# Namespace which contains part-db
NAMESPACE="part-db"
# The container's name (Not POD!) This... shouldn't change.
CONTAINER_NAME="part-db"
# The name of the pod. This, will change depending on your release.
POD_NAME="parts-db-part-db-0"


# Shouldn't need to touch these.
CONTAINER_BACKUP_FOLDER="/var"
CONTAINER_BACKUP_FILE=$BACKUP_FILE
CONTAINER_BACKUP_EXTRACTED="/var/extracted_backups"

# Copy backup .zip into container
kubectl cp -n $NAMESPACE -c $CONTAINER_NAME $BACKUP_FILE $POD_NAME:$CONTAINER_BACKUP_FOLDER/$CONTAINER_BACKUP_FILE

# Extract backup files to $CONTAINER_BACKUP_EXTRACTED
kubectl exec -it -n $NAMESPACE -c $CONTAINER_NAME $POD_NAME -- unzip $CONTAINER_BACKUP_FOLDER/$CONTAINER_BACKUP_FILE -d $CONTAINER_BACKUP_EXTRACTED

# Restore Public/Media
kubectl exec -it -n $NAMESPACE -c $CONTAINER_NAME $POD_NAME -- cp -R $CONTAINER_BACKUP_EXTRACTED/public/media /var/www/html/public

# Overwrite database file.
kubectl exec -it -n $NAMESPACE -c $CONTAINER_NAME $POD_NAME -- cp $CONTAINER_BACKUP_EXTRACTED/var/app.db /var/www/html/var/db

# Delete POD. (Aka, Restart Part-DB)
kubectl delete pod -n $NAMESPACE $POD_NAME

XtremeOwnageDotCom avatar Mar 08 '25 19:03 XtremeOwnageDotCom