Skip to content

Instantly share code, notes, and snippets.

@pixelead0
Created May 4, 2021 21:21
Show Gist options
  • Save pixelead0/1d449bde72c45d735078328789bbc9dc to your computer and use it in GitHub Desktop.
Save pixelead0/1d449bde72c45d735078328789bbc9dc to your computer and use it in GitHub Desktop.
Backup all databases from odoo
#Backup all databases from odoo
#References:
# Backup databases:
# https://github.com/odoo/odoo/blob/cd9c071c9357cef14635ef094a9f14fc5431956c/addons/web/controllers/main.py#L1185
# List databases
# https://github.com/odoo/odoo/blob/cd9c071c9357cef14635ef094a9f14fc5431956c/addons/web/controllers/main.py#L1234
MASTER_PWD=password
BACKUP_DIR=data/backup/
HOST=http://localhost:8069
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p ${BACKUP_DIR}
# Get list databases
LIST_DB=$(curl -X GET -H "Content-Type: application/json" -d "{}" ${HOST}/web/database/list)
TOTAL_DB=$(echo $LIST_DB | jq .result | jq length )
for (( i = 0; i < $TOTAL_DB; i++ )); do
DB_NAME=$(echo ${LIST_DB} | jq -r .result[${i}])
echo $DB_NAME
curl -X POST \
-F "master_pwd=${MASTER_PWD}" \
-F "name=${DB_NAME}" \
-F "backup_format=zip" \
-o data/backup/${DB_NAME}_${DATE}.zip \
${HOST}/web/database/backup
done
# delete old backups
find ${BACKUP_DIR} -type f -mtime +15 -name "${DB_NAME}.*.zip" -delete
@pixelead0
Copy link
Author

pixelead0 commented May 4, 2021

The result of $LIST_DB:

{"jsonrpc": "2.0", "id": null, "result": ["uno", "dos", "tres", "cuatro"]}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment