Introduction
Copy the following two scripts into an editor of your choice and save them as .sh files. Add the necessary information for:
<PLACEHOLDER_REQIF-MANAGER-CONTAINERNAME>
<PLACEHOLDER_MYSQL-CONTAINERNAME>
<PLACEHOLDER_MSQL-ROOT-PW>
Give yourself with the command chmod 777 <filename>.sh execution rights for the scripts. Then start the backup script with the command: ./backupReqifMGR.sh (if your filename is "backupReqifMGR.sh") This takes some time depending on the size of the data to be backed up. The backed up data is located in the file backup.tar.gz (in your current folder from where you started the script).
After that you can use the bakups backups for restoring in your new environment.
Backup
To Backup the current Reqif Manager Data in your Docker Containers use the follwing bash Script:
#!/bin/bash
export REQIF_MGR_CONTAINER=<PLACEHOLDER_REQIF-MANAGER-CONTAINERNAME>
export MYSQL_CONTAINER=<PLACEHOLDER_MYSQL-CONTAINERNAME>
export MYSQL_ROOT_PASSWORD=<PLACEHOLDER_MSQL-ROOT-PW>
#backup mysql
docker exec -ti $MYSQL_CONTAINER mysqldump -A -C -x --max-allowed-packet=2G -u root -p$MYSQL_ROOT_PASSWORD --result-file=dump.sql
docker exec -ti $MYSQL_CONTAINER gzip dump.sql
rm dump.sql
docker cp $MYSQL_CONTAINER:dump.sql.gz dump.sql.gz
docker exec -ti $MYSQL_CONTAINER rm dump.sql.gz
#backup reqif files
docker exec -ti $REQIF_MGR_CONTAINER tar -zcvf backup.tar.gz /app/web/uploads
rm backup.tar.gz
docker cp $REQIF_MGR_CONTAINER:/app/backup.tar.gz backup.tar.gz
docker exec -ti $REQIF_MGR_CONTAINER rm /app/backup.tar.gz
Restore
The restore script must be located in the same folder as your backup.tar.gz file with the data you want to restore.
To restore the backed up data use the following bash script:
#!/bin/bash
export REQIF_MGR_CONTAINER=<PLACEHOLDER_REQIF-MANAGER-CONTAINERNAME>
export MYSQL_CONTAINER=<PLACEHOLDER_MYSQL-CONTAINERNAME>
export MYSQL_ROOT_PASSWORD=<PLACEHOLDER_MSQL-ROOT-PW>
#restore mysql
docker cp dump.sql.gz $MYSQL_CONTAINER:dump.sql.gz
docker exec -ti $MYSQL_CONTAINER gunzip dump.sql.gz
docker exec -ti $MYSQL_CONTAINER bash -c 'mysql --max-allowed-packet=2G -u root -p$MYSQL_ROOT_PASSWORD <dump.sql'
docker exec -ti $MYSQL_CONTAINER rm -f dump.sql
#restore reqif files
docker cp backup.tar.gz $REQIF_MGR_CONTAINER:/app/backup.tar.gz
docker exec -ti $REQIF_MGR_CONTAINER tar -xvf /app/backup.tar.gz -C /
docker exec -ti $REQIF_MGR_CONTAINER rm -f /app/backup.tar.gz