Como hacer el backup de Odoo

Gustavo Orrillo
- 06/08/2022 - 3 min. de lectura

Hacer el backup de Odoo es facil. Lo que es complicado es restaurarlo y tener la instalación andando de vuelta. Odoo brinda un utilitario de backup el cual le va a servir en algunas ocasiones. Lo que vamos a hacer en este post es explicar como realizar el backup en sus componentes más básicos, así se puede diseñar una estrategia de backup y restore que le va a servir en su ambiente de producción. Los componentes a hacer backup son los que se listan a continuación.

PostgreSQL

Se debe realizar backup de la base de datos de forma regular.  Vamos a explicar como se realiza el backup utilizando el utilitario pg_dump (el cual se encuentra provisto por PostgreSQL). El pg_dump se puede utilizar desde la línea de comandos el cual lista todos los contenidos al stdout de la consola. por supuesto dicho contenido puede ser redirigido a un archivo de texto, el cual puede ser copiado a otro server y restaurado en el mismo.

pg_dump mibasededatos > mibasededatos.sql

Y para restaurarlo en el server destino se debe crear la base de datos y ejecutar los comandos del archivo creado por el pg_dump

createdb minuevabasededatos
psql -d minuevabasededatos < mibasededatos.sql

Y esto restaura la base de datos en el sistema destino. Dicho server puede tener una versión diferente de PostgreSQL, lo cual no es un dato menor. Si uno realiza el backup con el utilitario provisto por Odoo (el cual invoca el pg_dump) el mismo solo puede ser restaurado en un server con la misma versión de PostgreSQL (y como sabemos, las versiones de los servers pueden variar).

filestore

El otro componente al que hay que hacer backup es el filestore. Todos los contenidos binarios de Odoo (por ejemplo attachments) por default (a menos que se configure) se almacenan en el filesystem del server. Por lo general lo encuentran en el siguiente directorio en su server

cd /opt/odoo15
cd .local/share/Odoo/filestore/

Si listan los contenidos de dicho directorio, podrán ver que hay un directorio por base de datos y dentro de dicho directorio verán que existen múltiples directorios con los archivos


Dicho contenido es mantenido por Odoo de forma automática. No piensen en alterar dicho mecanismo ya que tendrán resultados no deseados.

Bien, el punto es este filestore debe ser copiado en su totalidad al directorio en el sistema destino donde se almacenará el filestore. Y se debe respetar su estructura de directorios, caso contrario los resultados no serán los deseados.

Código fuente de customizaciones y módulos externos de Odoo

Supongo que no están mezclando el directorio de addons de Odoo con sus módulos customizados. Habiendo dicho esto, lo que conviene es tener un repositorio en github (o gitlab, donde sea pero hay que tenerlo) en donde se almacenarán cada uno de los módulos que se utiliza en el sistema. Y mantener dicho repositorio con cada uno de los módulos que se hace instala o se actualiza en el sistema. Luego es importante entender los paquetes externos instalados (y sus dependencias) para hacer funcionar dichos módulos. Por ejemplo, en los módulos de Python dichos requerimientos se encuentran documentados en el archivo requirements.txt y se pueden instalar de la siguiente manera

sudo pip3 install -r requirements.txt

En el sistema destino dicho repositorio debe ser instalado en el directorio donde se almacenan los addons externos. 

Código fuente del core de Odoo

De la misma manera que se mantiene un repositorio con los addons externos o customizados, se debe mantener un repositorio con la versión de Odoo instalada (consejo, hagan un fork del Odoo instalado). Y luego documenten los pasos de instalación de dicho Odoo para evitar cualquier sorpresa al momento de instalar Odoo en el sistema destino y restaurar el backup. También se debe hacer un backup del archivo de configuración de Odoo

En el sistema destino se debe instalar Odoo desde los fuentes siguiendo los pasos documentados previamente de la instalación. Acto seguido, se debe restaurar la base de datos, copiar el filestore y los addons customizados. Y luego actualizar la base de datos con el nuevo código (porque pueden haber cambios)

sudo -Hu odoo ./odoo-bin -c /etc/odoo.conf -d minuevabasededatos -u base --stop-after-init

Por último, es fundamental en temas de backup practicar el restore de forma regular. Todos hacen backup, pero no saben restaurarlo. Para ello es principal la práctica constante para entender los issues (y sus soluciones) que se pueden originar con este procedimiento. También es muy importante entender como se instala y como funciona Odoo, es crítico para estos procedimientos.

Acerca de:

Gustavo Orrillo

Passionate about programming, he has implemented Odoo for different types of businesses since 2010. In Moldeo Interactive he is a founding Partner and Programmer; In addition to writing on the Blog about different topics related to the developments he makes.