Introducción
En este tutorial, lo guiaremos a través del proceso de creación de copias de seguridad diarias automáticas de sus bases de datos de Odoo. Odoo es el sistema ERP de código abierto más popular escrito en Python y utiliza PostgreSQL como backend de la base de datos.
Odoo almacena sus datos en una base de datos PostgreSQL. La copia de seguridad regular de la base de datos lo protegerá de la pérdida de datos potencialmente catastrófica y es absolutamente esencial para cualquier persona con una instalación de Odoo.
Interfaz de gestión de bases de datos de Odoo
La interfaz de administración de la base de datos de Odoo proporciona herramientas para realizar copias de seguridad, duplicar, eliminar, crear y restaurar una base de datos. Crear una copia de seguridad a través de la interfaz de administración de la base de datos es muy sencillo. Simplemente abra su navegador y vaya a http://DOMINIO_O_IP:8069/web/database/manager
.
Haga clic en el Backup
y aparecerá una nueva ventana emergente.
Ingrese la contraseña maestra de la base de datos de Odoo y cree una copia de seguridad haciendo clic en el botón azul Backup
.
Dependiendo del tamaño de la base de datos, la copia de seguridad puede tardar algún tiempo en estar lista.
Cree una copia de seguridad de la base de datos desde la línea de comandos
Ahora que sabemos cómo crear una copia de seguridad a través de la interfaz de administración de la base de datos de Odoo, podemos usar la misma herramienta para crear una copia de seguridad de la línea de comandos usando wget
o curl
. Ambas herramientas pueden enviar datos con POST que podemos usar para pasar las variables necesarias a la herramienta de base de datos Odoo.
En la siguiente contraseña maestra está ADMIN_PASSWORD
y estamos creando un archivo de respaldo back_up_filename.zip
una base de datos llamada DB_NAME
que se guardará en el directorio backup_dir
.
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
Si prefiere wget
lugar de curl
, puede usar el siguiente comando:
wget --post-data 'master_pwd=ADMIN_PASSWORD&name=DB_NAME&backup_format=zip' -O /backup_dir/back_up_filename.zip http://localhost:8069/web/database/backup
Si desea crear una copia de seguridad desde una ubicación remota en lugar de ingresar localhost
, ingrese el host de su instancia de Odoo. En este caso, le recomendamos que utilice HTTPS porque no desea que la contraseña se envíe a través de Internet en texto sin formato.
Configurar la copia de seguridad automática de Odoo
Para automatizar el proceso de respaldo y respaldar nuestra base de datos de Odoo a intervalos regulares, podemos crear un trabajo cron.
Digamos que queremos hacer una copia de seguridad de nuestra base de datos Odoo todos los días a la 01:30 am
y mantener las últimas 7 copias de seguridad.
Crearemos un script bash simple que puede nombrar como desee:
sudo nano bk_odoo.sh
#!/bin/bash
# vars
BACKUP_DIR=~/odoo_backups
ODOO_DATABASE=db1
ADMIN_PASSWORD=superadmin_passwd
# create a backup directory
mkdir -p ${BACKUP_DIR}
# create a backup
curl -X POST \
-F "master_pwd=${ADMIN_PASSWORD}" \
-F "name=${ODOO_DATABASE}" \
-F "backup_format=zip" \
-o ${BACKUP_DIR}/${ODOO_DATABASE}.$(date +%F).zip \
http://localhost:8069/web/database/backup
# delete old backups
find ${BACKUP_DIR} -type f -mtime +7 -name "${ODOO_DATABASE}.*.zip" -delete
Guarde y cierre el archivo.
Haga que el script sea ejecutable con chmod
:
sudo chmod +x ~/bk_odoo.sh
No olvide cambiar las BACKUP_DIR
, ODOO_DATABASE
y ADMIN_PASSWORD
según sus necesidades.
El último paso es crear un nuevo trabajo cron que se ejecutará todos los días a la 01:30 am
:
crontab -e
30 1 * * * /home/<yourusername>/bk_odoo.sh
No olvide establecer el nombre y la ruta correctos para el script de respaldo.
Puede modificar el script e implementar una solución de respaldo más robusta, como el uso de almacenamiento de respaldo remoto, el mantenimiento de respaldos semanales y mensuales, y más.
Restaurar una base de datos de Odoo
Para restaurar una copia de seguridad de la base de datos usando la interfaz de administración de la base de datos, abra su navegador y vaya a http://DOMINIO_O_IP:8069/web/database/manager
.
Haga clic en el Restore Database
y aparecerá una nueva ventana emergente.
Ingrese la contraseña maestra de la base de datos de Odoo, seleccione el archivo de respaldo, ingrese el nuevo nombre de la base de datos y restaure la base de datos haciendo clic en el botón azul Continue
.
Antes de restaurar la base de datos, debe eliminar la base de datos o utilizar otro nombre de base de datos.
Según el tamaño de la base de datos y la velocidad de Internet, el proceso de restauración puede llevar algún tiempo.
También podemos restaurar la base de datos desde la línea de comando:
curl -F 'master_pwd=superadmin_passwd' -F backup_file=@/opt/odoo/odoo_backups/db1.2018-04-14.zip -F 'copy=true' -F 'name=db3' http://localhost:8069/web/database/restore
Por supuesto, tendrá que adaptar el comando con su contraseña de Odoo Master, la ruta para la copia de seguridad de la base de datos y el nombre de la base de datos.
Si la restauración es exitosa, la salida debería verse así:
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>Redirecting...</title>
<h1>Redirecting...</h1>
<p>You should be redirected automatically to target URL: <a href="/web/database/manager">/web/database/manager</a>. If not click the link.
Conclusión
Este tutorial lo guió a través de la creación de copias de seguridad diarias automáticas de sus bases de datos de Odoo usando un cronjob.