Migracion Hosting Odoo 2026: Guia Completa Paso a Paso

Aprende a migrar tu instalacion de Odoo a un nuevo servidor de forma segura. Guia detallada con backup de base de datos PostgreSQL, filestore, configuracion DNS, testing y solucion de errores comunes.

Publicado: 25 enero 2026 Actualizado: 25 enero 2026 30 min lectura Dr. Maria Elena Rodriguez
7 Pasos del Proceso
2-6h Tiempo Estimado
99% Tasa de Exito
15min Downtime Minimo
8+ Errores Comunes

Introduccion: Por Que Migrar tu Odoo a Otro Hosting

La migracion de Odoo a un nuevo hosting es una de las tareas mas criticas que puede enfrentar un administrador de sistemas ERP. Ya sea por mejor rendimiento, costes mas bajos, mejor soporte o simplemente porque tu proveedor actual no cumple con tus expectativas, cambiar de hosting requiere una planificacion meticulosa para evitar perdida de datos y minimizar el tiempo de inactividad.

Objetivo de Esta Guia

Al finalizar esta guia, seras capaz de realizar una migracion completa de Odoo con menos de 30 minutos de downtime, manteniendo la integridad total de tus datos, archivos y configuraciones. Cubriremos desde el backup inicial hasta la validacion final post-migracion.

Razones Comunes para Migrar

Componentes de una Instalacion Odoo

Antes de iniciar la migracion, es fundamental entender que componentes forman una instalacion completa de Odoo:

Componente Ubicacion Tipica Descripcion
Base de datos PostgreSQL /var/lib/postgresql/ Todos los datos de negocio: clientes, facturas, inventario, etc.
Filestore ~/.local/share/Odoo/filestore/ Archivos adjuntos: PDFs, imagenes, documentos subidos
Codigo Odoo /opt/odoo/ o /usr/lib/python3/ El framework Odoo y modulos base
Modulos custom /opt/odoo/custom-addons/ Modulos personalizados y de terceros
Configuracion /etc/odoo/odoo.conf Parametros del servidor, rutas, workers
Certificados SSL /etc/letsencrypt/ o /etc/ssl/ Certificados HTTPS para conexion segura

Nota Importante

Los dos componentes mas criticos son la base de datos PostgreSQL y el filestore. Sin estos, perderas todos tus datos de negocio. El codigo de Odoo puede reinstalarse, pero los datos son irreemplazables sin un backup adecuado.

Diagrama del Flujo de Migracion

Este diagrama interactivo muestra el flujo completo del proceso de migracion. Cada nodo representa una fase critica. Pasa el cursor sobre cada fase para ver detalles y tiempo estimado.

Paso 1: Preparacion del Entorno

Documentacion y Planificacion

30-60 minutos

Antes de tocar cualquier archivo, documenta tu instalacion actual. Esto te salvara de problemas durante la restauracion.

1.1 Documentar Version de Odoo

# Verificar version de Odoo instalada
odoo --version

# O desde la interfaz web, ir a:
# Configuracion -> Opciones Generales -> Sobre Odoo

1.2 Listar Modulos Instalados

# Desde PostgreSQL, listar modulos activos
psql -U odoo -d tu_base_datos -c "SELECT name, state FROM ir_module_module WHERE state = 'installed';"

# Guardar en archivo
psql -U odoo -d tu_base_datos -c "SELECT name FROM ir_module_module WHERE state = 'installed';" > modulos_instalados.txt

1.3 Documentar Configuracion Actual

# Copiar archivo de configuracion
cp /etc/odoo/odoo.conf ~/backup_config/odoo.conf.backup

# Documentar configuracion nginx si aplica
cp /etc/nginx/sites-available/odoo ~/backup_config/nginx_odoo.backup

1.4 Verificar Espacio en Disco

# Tamano de la base de datos
psql -U odoo -d tu_base_datos -c "SELECT pg_size_pretty(pg_database_size('tu_base_datos'));"

# Tamano del filestore
du -sh ~/.local/share/Odoo/filestore/tu_base_datos/

Precaucion

Asegurate de tener al menos 3 veces el espacio del tamano total de datos en el nuevo servidor. Necesitaras espacio para: datos originales, archivos comprimidos temporales, y margen de seguridad.

Paso 2: Backup de Base de Datos PostgreSQL

Exportacion Completa de la Base de Datos

15-60 minutos (segun tamano)

El backup de PostgreSQL es el paso mas critico. Usaremos pg_dump con formato custom para maxima flexibilidad.

2.1 Metodo Recomendado: pg_dump con formato Custom

# Backup completo con formato custom (recomendado)
pg_dump -Fc -h localhost -U odoo -d tu_base_datos -f backup_$(date +%Y%m%d_%H%M%S).dump

# Explicacion de parametros:
# -Fc: Formato custom (comprimido, restauracion flexible)
# -h localhost: Host de PostgreSQL
# -U odoo: Usuario de PostgreSQL
# -d tu_base_datos: Nombre de la base de datos
# -f: Archivo de salida con fecha

2.2 Metodo Alternativo: Backup desde Interfaz Web

Si prefieres usar la interfaz grafica de Odoo:

  1. Accede a https://tu-servidor/web/database/manager
  2. Ingresa la master password (configurada en odoo.conf)
  3. Haz clic en "Backup" junto a tu base de datos
  4. Selecciona formato "zip" para incluir filestore automaticamente
  5. Descarga el archivo generado

Diferencia entre Formatos

Formato Custom (-Fc): Mas rapido, permite restauracion parcial de tablas, compresion optima. Ideal para bases grandes.
Formato ZIP (web): Incluye filestore automaticamente, mas facil de usar, pero mas lento y archivos mas grandes.

2.3 Verificar Integridad del Backup

# Verificar que el archivo no esta corrupto
pg_restore -l backup_20260125_120000.dump | head -20

# Deberia mostrar lista de objetos en el backup
# Si hay error, el archivo esta corrupto - repetir backup

2.4 Backup durante Horario de Baja Actividad

Para garantizar consistencia de datos, programa el backup final durante horario de minima actividad. Considera:

  • Notificar a usuarios sobre ventana de mantenimiento
  • Detener trabajos programados (cron jobs de Odoo)
  • Considerar poner Odoo en modo mantenimiento
# Opcion: Detener Odoo durante backup final para maxima consistencia
sudo systemctl stop odoo
pg_dump -Fc -U odoo -d tu_base_datos -f backup_final.dump
sudo systemctl start odoo

Paso 3: Copia del Filestore

Transferencia de Archivos Adjuntos

15-120 minutos (segun tamano)

El filestore contiene todos los archivos subidos a Odoo: facturas PDF, imagenes de productos, documentos adjuntos a registros, etc.

3.1 Localizar el Filestore

# Ubicacion por defecto (usuario odoo)
ls -la ~/.local/share/Odoo/filestore/

# O verificar en odoo.conf
grep data_dir /etc/odoo/odoo.conf

# Ejemplo de salida:
# data_dir = /var/lib/odoo/.local/share/Odoo

3.2 Comprimir el Filestore

# Comprimir con tar y gzip para transferencia eficiente
cd ~/.local/share/Odoo/filestore/
tar -czvf ~/filestore_backup_$(date +%Y%m%d).tar.gz tu_base_datos/

# Verificar tamano
ls -lh ~/filestore_backup_*.tar.gz

3.3 Transferir al Nuevo Servidor

# Opcion 1: SCP (mas simple)
scp ~/filestore_backup_20260125.tar.gz usuario@nuevo-servidor:/tmp/
scp ~/backup_final.dump usuario@nuevo-servidor:/tmp/

# Opcion 2: rsync (mejor para archivos grandes, soporta reanudacion)
rsync -avz --progress ~/filestore_backup_20260125.tar.gz usuario@nuevo-servidor:/tmp/

# Opcion 3: Para conexiones lentas, usar screen/tmux para evitar cortes
screen -S transfer
rsync -avz --progress --partial ~/filestore_backup*.tar.gz usuario@nuevo-servidor:/tmp/

Consejo Pro

Si el filestore es muy grande (>10GB), considera usar rsync con compresion y la opcion --partial para poder reanudar transferencias interrumpidas. Tambien puedes sincronizar en paralelo mientras el servidor original sigue funcionando.

3.4 Verificar Transferencia

# En el nuevo servidor, verificar checksum
# En servidor origen:
md5sum ~/filestore_backup_20260125.tar.gz

# En servidor destino:
md5sum /tmp/filestore_backup_20260125.tar.gz

# Los hashes deben coincidir exactamente

Paso 4: Configuracion del Nuevo Servidor

Preparar el Entorno de Destino

30-90 minutos

El nuevo servidor debe tener instalados todos los componentes necesarios antes de restaurar los datos.

4.1 Requisitos del Sistema (Odoo 18)

ComponenteVersion Requerida
Sistema OperativoUbuntu 22.04/24.04 LTS o Debian 12
Python3.10 o superior
PostgreSQL14, 15 o 16 (recomendado 16)
Node.js18 LTS o superior
wkhtmltopdf0.12.6 con patched qt

4.2 Instalacion de Dependencias

# Actualizar sistema
sudo apt update && sudo apt upgrade -y

# Instalar PostgreSQL 16
sudo apt install -y postgresql-16 postgresql-client-16

# Instalar dependencias Python
sudo apt install -y python3-pip python3-dev python3-venv \
libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev \
libtiff5-dev libjpeg8-dev libopenjp2-7-dev zlib1g-dev \
libfreetype6-dev liblcms2-dev libwebp-dev libharfbuzz-dev \
libfribidi-dev libxcb1-dev libpq-dev

# Instalar Node.js 18
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs

# Instalar wkhtmltopdf
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.jammy_amd64.deb
sudo apt install -y ./wkhtmltox_0.12.6.1-3.jammy_amd64.deb

4.3 Instalar Odoo

# Crear usuario odoo
sudo useradd -m -d /opt/odoo -U -r -s /bin/bash odoo

# Clonar Odoo (misma version que el origen)
sudo su - odoo
git clone https://www.github.com/odoo/odoo --depth 1 --branch 18.0 /opt/odoo/odoo

# Crear entorno virtual e instalar dependencias
python3 -m venv /opt/odoo/venv
source /opt/odoo/venv/bin/activate
pip install wheel
pip install -r /opt/odoo/odoo/requirements.txt

4.4 Configurar PostgreSQL

# Crear usuario PostgreSQL para Odoo
sudo -u postgres createuser -s odoo

# Opcional: Establecer password
sudo -u postgres psql -c "ALTER USER odoo WITH PASSWORD 'tu_password_seguro';"

Version de PostgreSQL

Es importante que la version de PostgreSQL en el nuevo servidor sea igual o superior a la del servidor origen. No puedes restaurar un backup de PostgreSQL 16 en un servidor con PostgreSQL 14. Verifica versiones antes de continuar.

Paso 5: Restauracion de Datos

Importar Base de Datos y Filestore

20-90 minutos

5.1 Crear Base de Datos Vacia

# Crear base de datos con mismo nombre que el origen
sudo -u postgres createdb -O odoo tu_base_datos

# O si usas password:
createdb -h localhost -U odoo tu_base_datos

5.2 Restaurar Base de Datos

# Restaurar desde formato custom
pg_restore -h localhost -U odoo -d tu_base_datos -v /tmp/backup_final.dump

# Si hay errores de permisos, usar --no-owner
pg_restore -h localhost -U odoo -d tu_base_datos -v --no-owner /tmp/backup_final.dump

# Para ver progreso en bases grandes:
pg_restore -h localhost -U odoo -d tu_base_datos -v /tmp/backup_final.dump 2>&1 | tee restore.log

5.3 Restaurar Filestore

# Crear directorio de filestore
sudo mkdir -p /opt/odoo/.local/share/Odoo/filestore/

# Descomprimir filestore
cd /opt/odoo/.local/share/Odoo/filestore/
sudo tar -xzvf /tmp/filestore_backup_20260125.tar.gz

# Ajustar permisos
sudo chown -R odoo:odoo /opt/odoo/.local/
sudo chmod -R 755 /opt/odoo/.local/share/Odoo/filestore/

5.4 Copiar Modulos Personalizados

# Crear directorio para modulos custom
sudo mkdir -p /opt/odoo/custom-addons

# Copiar desde backup o transferir directamente
scp -r usuario@servidor-origen:/opt/odoo/custom-addons/* /opt/odoo/custom-addons/

# Ajustar permisos
sudo chown -R odoo:odoo /opt/odoo/custom-addons

5.5 Configurar odoo.conf

# Crear archivo de configuracion
sudo nano /etc/odoo/odoo.conf

[options]
admin_passwd = tu_master_password_segura
db_host = localhost
db_port = 5432
db_user = odoo
db_password = tu_password_postgres
addons_path = /opt/odoo/odoo/addons,/opt/odoo/custom-addons
data_dir = /opt/odoo/.local/share/Odoo
logfile = /var/log/odoo/odoo.log
workers = 4
max_cron_threads = 2

Verificacion Rapida

Antes de continuar con DNS, prueba que Odoo arranca correctamente:

sudo -u odoo /opt/odoo/venv/bin/python /opt/odoo/odoo/odoo-bin -c /etc/odoo/odoo.conf

Accede a http://IP-NUEVO-SERVIDOR:8069 y verifica que ves la pantalla de login.

Paso 6: Cambio de DNS

Redirigir el Dominio al Nuevo Servidor

15-60 minutos (propagacion: hasta 48h)

Una vez verificado que Odoo funciona en el nuevo servidor, es momento de redirigir el trafico.

6.1 Configurar Nginx como Proxy Inverso

# Instalar nginx
sudo apt install -y nginx

# Crear configuracion para Odoo
sudo nano /etc/nginx/sites-available/odoo
# Contenido del archivo nginx:

upstream odoo {
server 127.0.0.1:8069;
}

upstream odoochat {
server 127.0.0.1:8072;
}

server {
listen 80;
server_name tu-dominio.com www.tu-dominio.com;

proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;

location / {
proxy_pass http://odoo;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}

location /longpolling {
proxy_pass http://odoochat;
}
}
# Activar sitio y reiniciar nginx
sudo ln -s /etc/nginx/sites-available/odoo /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

6.2 Configurar SSL con Let's Encrypt

# Instalar certbot
sudo apt install -y certbot python3-certbot-nginx

# Obtener certificado SSL
sudo certbot --nginx -d tu-dominio.com -d www.tu-dominio.com

# Verificar renovacion automatica
sudo certbot renew --dry-run

6.3 Actualizar Registros DNS

En el panel de tu registrador de dominio (GoDaddy, Cloudflare, Namecheap, etc.):

  1. Localiza los registros A para tu dominio
  2. Cambia la IP del registro A principal a la IP del nuevo servidor
  3. Si usas www, actualiza tambien ese registro
  4. Reduce el TTL a 300 segundos antes del cambio para acelerar propagacion
Tipo Nombre Valor (antes) Valor (despues) TTL
A @ 123.45.67.89 98.76.54.32 300
A www 123.45.67.89 98.76.54.32 300

Tiempo de Propagacion DNS

Los cambios DNS pueden tardar entre 15 minutos y 48 horas en propagarse globalmente. Durante este periodo, algunos usuarios veran el servidor antiguo y otros el nuevo. Mantener ambos servidores activos durante las primeras 48-72 horas.

Paso 7: Testing y Validacion

Verificar Funcionamiento Completo

30-60 minutos

La fase de testing es critica para detectar problemas antes de que afecten a usuarios en produccion.

7.1 Checklist de Validacion Basica

  • Login de usuarios funciona correctamente
  • Dashboard principal carga sin errores
  • Imagenes y adjuntos se visualizan correctamente
  • Reportes PDF se generan correctamente
  • Envio de emails funciona
  • Trabajos programados (cron) se ejecutan

7.2 Verificar Logs de Errores

# Revisar logs de Odoo
tail -f /var/log/odoo/odoo.log

# Filtrar solo errores
grep -i error /var/log/odoo/odoo.log | tail -50

# Revisar logs de nginx
tail -f /var/log/nginx/error.log

7.3 Probar Modulos Criticos

Para cada modulo instalado, verifica al menos una operacion critica:

ModuloPrueba Recomendada
VentasCrear cotizacion, confirmar pedido, generar factura PDF
ComprasCrear orden de compra, recibir productos
InventarioVerificar stock, realizar transferencia
ContabilidadRevisar asientos, generar reporte de balance
CRMVer oportunidades, enviar email desde registro
WebsiteVerificar pagina publica, probar formulario de contacto

7.4 Validar Integridad de Datos

# Comparar conteos de registros importantes
# En servidor ORIGEN:
psql -U odoo -d tu_base_datos -c "SELECT 'partners' as tabla, COUNT(*) FROM res_partner UNION ALL SELECT 'products', COUNT(*) FROM product_template UNION ALL SELECT 'invoices', COUNT(*) FROM account_move WHERE move_type IN ('out_invoice', 'in_invoice');"

# Repetir en servidor DESTINO y comparar resultados

Migracion Exitosa

Si todos los tests pasan correctamente, la migracion ha sido exitosa. Mantener el servidor antiguo apagado (no eliminado) durante al menos 7 dias como backup de emergencia.

Errores Comunes y Soluciones

Estos son los problemas mas frecuentes durante migraciones de Odoo y como resolverlos:

Filestore no encontrado

Las imagenes y adjuntos no aparecen despues de restaurar.

Solucion: Verificar que el filestore esta en la ruta correcta indicada en data_dir de odoo.conf. Los permisos deben ser del usuario odoo.

Version PostgreSQL incompatible

Error: "pg_restore: unsupported version" al restaurar backup.

Solucion: Instalar la misma version o superior de PostgreSQL. No es posible restaurar backups de versiones nuevas en versiones antiguas.

Modulo no encontrado

Odoo no arranca por falta de modulo instalado.

Solucion: Copiar modulos custom al servidor nuevo. Actualizar addons_path en odoo.conf. Ejecutar: pip install [dependencia faltante].

Permisos de directorio

Errores de escritura en logs o filestore.

Solucion: sudo chown -R odoo:odoo /opt/odoo/ /var/log/odoo/ y verificar que el servicio corre como usuario odoo.

SSL/HTTPS no funciona

Certificado no valido o errores de mixed content.

Solucion: Regenerar certificado con certbot. Verificar proxy_set_header X-Forwarded-Proto en nginx. Actualizar web.base.url en ir_config_parameter.

Emails no se envian

Error de conexion SMTP despues de migrar.

Solucion: Verificar configuracion de servidor de correo saliente en Configuracion > Servidores. La IP nueva puede necesitar whitelist en el servidor SMTP.

Longpolling no funciona

Chat y notificaciones en tiempo real no funcionan.

Solucion: Verificar configuracion nginx para /longpolling (puerto 8072). Habilitar workers y gevent en odoo.conf.

Cron jobs no ejecutan

Las acciones programadas no se disparan.

Solucion: Verificar max_cron_threads > 0 en odoo.conf. Revisar ir.cron en modo desarrollador para ver errores de ejecucion.

Checklist Completo de Migracion

Marca cada item completado para asegurar que no olvidas ningun paso critico:

Necesitas Ayuda con tu Migracion?

Odoo4projects ofrece migracion asistida gratuita cuando contratas su hosting gestionado. Soporte en espanol 24/7 y garantia de 60 dias.

Solicitar Migracion Gratuita

Preguntas Frecuentes sobre Migracion de Odoo

Cuanto tiempo tarda migrar Odoo a otro hosting?
Una migracion tipica de Odoo tarda entre 2-6 horas dependiendo del tamano de la base de datos y filestore. Para bases de datos pequenas (menos de 5GB) puede completarse en 2 horas. Instalaciones grandes con muchos archivos pueden requerir 6-8 horas o mas.
Puedo migrar Odoo sin tiempo de inactividad?
Es posible minimizar el downtime usando tecnicas de replicacion. La estrategia recomendada es: preparar el nuevo servidor, sincronizar datos, hacer un backup final rapido y cambiar DNS. El tiempo de inactividad minimo es de 15-30 minutos para el cambio final.
Que archivos necesito para migrar Odoo?
Los componentes esenciales son: 1) Backup de base de datos PostgreSQL (pg_dump), 2) Directorio filestore completo (~/.local/share/Odoo/filestore/), 3) Archivo de configuracion odoo.conf, 4) Modulos personalizados (carpeta addons custom). Opcionalmente: certificados SSL y configuracion nginx.
Como hago backup de la base de datos Odoo?
Usa el comando: pg_dump -Fc -h localhost -U odoo nombre_base_datos > backup.dump. El formato custom (-Fc) permite restauracion flexible. Alternativamente, desde la interfaz web de Odoo en /web/database/manager puedes exportar un archivo ZIP que incluye base de datos y filestore.
Que hacer si la migracion de Odoo falla?
Mantener siempre el servidor original funcionando hasta confirmar que todo funciona. Los errores mas comunes son: versiones incompatibles de PostgreSQL, permisos incorrectos en filestore, modulos faltantes. Revisa los logs en /var/log/odoo/odoo.log para diagnosticar problemas especificos.
Puedo migrar de Odoo Community a Enterprise durante el cambio de hosting?
Si, es posible pero requiere pasos adicionales. Primero migra normalmente, luego activa la licencia Enterprise y agrega los modulos enterprise. La base de datos Community es compatible con Enterprise. Recomendamos hacer esta actualizacion despues de confirmar que la migracion basica funciona.
Como migro los modulos personalizados de Odoo?
Copia el directorio completo de modulos custom al nuevo servidor. Asegurate de que la ruta este configurada en addons_path del archivo odoo.conf. Despues de restaurar la base de datos, actualiza los modulos desde la interfaz de aplicaciones o con: odoo -u all -d nombre_base_datos.
Es necesario actualizar la version de Odoo al migrar?
No es obligatorio, pero es una oportunidad ideal para actualizar. Si decides actualizar version (ej: de Odoo 17 a 18), hazlo DESPUES de confirmar que la migracion al nuevo hosting funciona con la version actual. Las actualizaciones de version requieren scripts de migracion especificos.

Articulos Relacionados