Copias de seguridad de Odoo

Usando Postgresql

# Crear usuario
adduser pepe
sudo -u postgres psql
CREATE ROLE pepe superuser;
ALTER USER pepe WITH ENCRYPTED PASSWORD 'garcia';
ALTER ROLE pepe WITH LOGIN;
\q
su pepe
cd /home/pepe/
-------------------------

#Copia de seguridad
pg_dump -h localhost -p 5432 -U pepe -F c -b -f  "/home/pepe/odoo.bak" odoo12
#Recuperar Copia
pg_restore -d odoo12 "/home/pepe/odoo.bak" -c -U pepe
------------------------

Atención: Este sistema tiene la desventaja de que no te copia los archivos binarios ( o sea las fotos).


Mediante el sistema del Odoo

El sistema que usa Odoo te copia la base de datos y los archivos binarios, por tanto es un sistema más completo.

Podemos hacer manualmente una copia de seguridad en /web/database/manager

Y recuperarla  desde ahí

Si lo quieres hacer por código se puedes usar curl:

curl --silent -F "master_pwd=miclave" -F "name=odooDB" http://localhost:8069/web/database/drop | grep -q "Internal Server Error"

Y para crear una nueva base de datos partiendo de la copia de seguridad:

curl -F "master_pwd=miclave" -F "backup_file=@/home/pepe/odoo1DB_backup.zip" -F "copy=true" -F "name=odooDB" http://localhost:8069/web/database/restore

Si queremos hacer una copia de seguridad por código con los archivos binarios se puede hacer así:

curl -X POST -F 'master_pwd=ADMIN_PASSWORD' -F 'name=DB_NAME' -F 'backup_format=zip' -o /backup_dir/back_up_filename.zip http://localhost:8069/web/database/backup