La escena se repite en todas las migraciones: se importa el fichero de clientes, alguien detecta un error, se corrige el CSV y se vuelve a importar. Resultado: el doble de clientes. La solución cabe en una columna.
El External ID, explicado sin rodeos
Cada registro de Odoo puede tener un identificador externo: una etiqueta de texto que lo identifica de forma única.
Si el CSV incluye una columna id con ese identificador, Odoo busca si ya existe un registro con esa
etiqueta. Si lo encuentra, lo actualiza; si no, lo crea.
Esa es toda la diferencia entre poder reimportar un fichero las veces que haga falta y acabar limpiando duplicados a mano.
Tres reglas que evitan el 90% de los problemas
1. El identificador tiene que ser único entre todos los modelos
No basta con que sea único dentro de su fichero. Si tu departamentos.csv usa 1, 2, 3… y tu
empleados.csv también, chocarán. La convención que funciona es prefijar:
dept_1, dept_2, emp_1, emp_2.
2. Las relaciones se enlazan por identificador, no por nombre
Cuando un registro apunta a otro —el empleado a su departamento, el producto a su proveedor— la columna se nombra
con el sufijo de identificador externo (por ejemplo department_id/id) y se rellena con la etiqueta del
registro relacionado. Enlazar por nombre funciona hasta que hay dos con el mismo nombre o alguien corrige una tilde.
3. Nunca repitas un identificador dentro del mismo fichero
Dos filas con el mismo External ID provocan un conflicto. Es un error trivial de cometer cuando el fichero sale de un export de otro sistema.
El formato del fichero también importa
- Codificación UTF-8. Los ficheros en ANSI o Latin-1 rompen las tildes y la eñe.
- Fechas en formato
AAAA-MM-DD. - Decimales con punto, no con coma:
99.99, no99,99. Es una fuente clásica de importes multiplicados por cien. - Campos de relación simple: se admite el nombre o el identificador externo.
Prueba antes de importar
Odoo incluye un botón de prueba que valida el fichero sin escribir nada. Merece la pena usarlo siempre, porque una importación fallida se revierte entera: si falla la fila 4.000, no se queda nada de las 3.999 anteriores. Descubrirlo después de veinte minutos de proceso es una forma innecesaria de perder la tarde.
Y antes de todo eso: limpia
La parte que más se salta y más cara sale es la previa. Normalizar formatos, unificar criterios de nomenclatura y decidir qué registros históricos merece la pena traer se hace mucho mejor en una hoja de cálculo que dentro del ERP. Migrar datos sucios solo consigue tener los mismos problemas en un sistema nuevo.