new features
This commit is contained in:
122
DATA-BACKUP-GUIDE.md
Normal file
122
DATA-BACKUP-GUIDE.md
Normal file
@@ -0,0 +1,122 @@
|
||||
# Data Backup and Restore Guide
|
||||
|
||||
## Overview
|
||||
|
||||
Your traceability application uses Docker volumes for persistent data storage. Data survives container restarts, updates, and redeployments automatically.
|
||||
|
||||
## Data Location
|
||||
|
||||
- **Docker Volume**: `traceability_traceability_data`
|
||||
- **Backup Directory**: `/opt/traceability-backups`
|
||||
- **Data Files**: JSON files stored in the volume
|
||||
- `auth.json` - User accounts and authentication
|
||||
- `budget.json` - Transactions, founders, settings, targets
|
||||
- `planning.json` - Sprints, tasks, comments, time logs
|
||||
- `documentation.json` - Documents and categories
|
||||
|
||||
## Backup Commands
|
||||
|
||||
### Create a Backup
|
||||
```bash
|
||||
cd /opt/traceability
|
||||
./deploy.sh --backup
|
||||
```
|
||||
|
||||
### Manual Backup
|
||||
```bash
|
||||
mkdir -p /opt/traceability-backups
|
||||
docker run --rm \
|
||||
-v traceability_traceability_data:/data \
|
||||
-v /opt/traceability-backups:/backup \
|
||||
alpine tar -czf /backup/backup_$(date +%Y%m%d_%H%M%S).tar.gz -C /data .
|
||||
```
|
||||
|
||||
## Restore Commands
|
||||
|
||||
### Restore from Backup
|
||||
```bash
|
||||
cd /opt/traceability
|
||||
./deploy.sh --restore /opt/traceability-backups/backup_YYYYMMDD_HHMMSS.tar.gz
|
||||
```
|
||||
|
||||
### Manual Restore
|
||||
```bash
|
||||
docker run --rm \
|
||||
-v traceability_traceability_data:/data \
|
||||
-v /opt/traceability-backups:/backup \
|
||||
alpine sh -c "rm -rf /data/* && tar -xzf /backup/backup_YYYYMMDD_HHMMSS.tar.gz -C /data"
|
||||
```
|
||||
|
||||
## Deployment with Data Preservation
|
||||
|
||||
### Standard Deployment (with automatic backup)
|
||||
```bash
|
||||
cd /opt/traceability
|
||||
./deploy.sh
|
||||
```
|
||||
|
||||
### Quick Deployment (skip backup)
|
||||
```bash
|
||||
./deploy.sh --skip-backup
|
||||
```
|
||||
|
||||
## Data Migration
|
||||
|
||||
### Export Data from One Server
|
||||
```bash
|
||||
# On source server
|
||||
./deploy.sh --backup
|
||||
scp /opt/traceability-backups/backup_*.tar.gz user@new-server:/tmp/
|
||||
```
|
||||
|
||||
### Import Data to New Server
|
||||
```bash
|
||||
# On destination server
|
||||
./deploy.sh --restore /tmp/backup_YYYYMMDD_HHMMSS.tar.gz
|
||||
./deploy.sh --skip-backup
|
||||
```
|
||||
|
||||
## Automatic Backups (Cron)
|
||||
|
||||
Add to crontab for daily backups:
|
||||
```bash
|
||||
# Edit crontab
|
||||
crontab -e
|
||||
|
||||
# Add this line for daily backup at 2 AM
|
||||
0 2 * * * /opt/traceability/deploy.sh --backup >> /var/log/traceability-backup.log 2>&1
|
||||
```
|
||||
|
||||
## Viewing Data
|
||||
|
||||
### Inspect Volume Contents
|
||||
```bash
|
||||
docker run --rm -v traceability_traceability_data:/data alpine ls -la /data
|
||||
```
|
||||
|
||||
### View Specific Data File
|
||||
```bash
|
||||
docker run --rm -v traceability_traceability_data:/data alpine cat /data/auth.json
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Data Not Persisting
|
||||
1. Check if volume exists: `docker volume ls | grep traceability`
|
||||
2. Inspect volume: `docker volume inspect traceability_traceability_data`
|
||||
3. Check data service logs: `docker logs data_service`
|
||||
|
||||
### Restore Failed
|
||||
1. Ensure backup file exists and is readable
|
||||
2. Stop services first: `docker compose down`
|
||||
3. Try manual restore (see above)
|
||||
4. Restart services: `docker compose up -d`
|
||||
|
||||
### Volume Full
|
||||
```bash
|
||||
# Check volume size
|
||||
docker system df -v
|
||||
|
||||
# Clean old backups
|
||||
ls -t /opt/traceability-backups/backup_*.tar.gz | tail -n +11 | xargs rm --
|
||||
```
|
||||
Reference in New Issue
Block a user