Ir al contenido
Odoo Menú
  • Iniciar sesión
  • Pruébalo gratis
  • Aplicaciones
    Finanzas
    • Contabilidad
    • Facturación
    • Gastos
    • Hoja de cálculo (BI)
    • Documentos
    • Firma electrónica
    Ventas
    • CRM
    • Ventas
    • PdV para tiendas
    • PdV para restaurantes
    • Suscripciones
    • Alquiler
    Sitios web
    • Creador de sitios web
    • Comercio electrónico
    • Blog
    • Foro
    • Chat en vivo
    • eLearning
    Cadena de suministro
    • Inventario
    • Manufactura
    • PLM
    • Compras
    • Mantenimiento
    • Calidad
    Recursos humanos
    • Empleados
    • Reclutamiento
    • Vacaciones
    • Evaluaciones
    • Referencias
    • Flotilla
    Marketing
    • Redes sociales
    • Marketing por correo
    • Marketing por SMS
    • Eventos
    • Automatización de marketing
    • Encuestas
    Servicios
    • Proyectos
    • Registro de horas
    • Servicio externo
    • Soporte al cliente
    • Planeación
    • Citas
    Productividad
    • Conversaciones
    • Aprobaciones
    • IoT
    • VoIP
    • Artículos
    • WhatsApp
    Aplicaciones externas Studio de Odoo Plataforma de Odoo en la nube
  • Industrias
    Venta minorista
    • Librería
    • Tienda de ropa
    • Mueblería
    • Tienda de abarrotes
    • Ferretería
    • Juguetería
    Alimentos y hospitalidad
    • Bar y pub
    • Restaurante
    • Comida rápida
    • Casa de huéspedes
    • Distribuidora de bebidas
    • Hotel
    Bienes inmuebles
    • Agencia inmobiliaria
    • Estudio de arquitectura
    • Construcción
    • Gestión de propiedades
    • Jardinería
    • Asociación de propietarios
    Consultoría
    • Firma contable
    • Partner de Odoo
    • Agencia de marketing
    • Bufete de abogados
    • Adquisición de talentos
    • Auditorías y certificaciones
    Manufactura
    • Textil
    • Metal
    • Muebles
    • Comida
    • Cervecería
    • Regalos corporativos
    Salud y ejercicio
    • Club deportivo
    • Óptica
    • Gimnasio
    • Especialistas en bienestar
    • Farmacia
    • Peluquería
    Trades
    • Personal de mantenimiento
    • Hardware y soporte de TI
    • Sistemas de energía solar
    • Zapateros y fabricantes de calzado
    • Servicios de limpieza
    • Servicios de calefacción, ventilación y aire acondicionado
    Otros
    • Organización sin fines de lucro
    • Agencia para la protección del medio ambiente
    • Alquiler de anuncios publicitarios
    • Fotografía
    • Alquiler de bicicletas
    • Distribuidor de software
    Descubre todas las industrias
  • Odoo Community
    Aprende
    • Tutoriales
    • Documentación
    • Certificaciones
    • Capacitación
    • Blog
    • Podcast
    Fortalece la educación
    • Programa educativo
    • Scale Up! El juego empresarial
    • Visita Odoo
    Obtén el software
    • Descargar
    • Compara ediciones
    • Versiones
    Colabora
    • GitHub
    • Foro
    • Eventos
    • Traducciones
    • Conviértete en partner
    • Servicios para partners
    • Registra tu firma contable
    Obtén servicios
    • Encuentra un partner
    • Encuentra un contador
    • Contacta a un consultor
    • Servicios de implementación
    • Referencias de clientes
    • Soporte
    • Actualizaciones
    GitHub YouTube Twitter LinkedIn Instagram Facebook Spotify
    +1 (650) 691-3277
    Solicita una demostración
  • Precios
  • Ayuda
Debe estar registrado para interactuar con la comunidad.
Todas las publicaciones Personas Insignias
Etiquetas (Ver todo)
odoo accounting v14 pos v15
Acerca de este foro
Debe estar registrado para interactuar con la comunidad.
Todas las publicaciones Personas Insignias
Etiquetas (Ver todo)
odoo accounting v14 pos v15
Acerca de este foro
Ayuda

Selection Field Options Disappear from Database (PostgreSQL enum) on Module Upgrade

Suscribirse

Reciba una notificación cuando haya actividad en esta publicación

Se marcó esta pregunta
v17
1763 Vistas
Avatar
Xi Ansen

Hello Odoo Community,

I'm encountering a very strange issue in Odoo 17 regarding a Selection field that loses its options in the database schema under specific upgrade scenarios. I would appreciate any insights or suggestions.

My Goal & Implementation

My goal is to add a consistent workflow state field (kanban_state) to many models that already use mail.thread and mail.activity.mixin (like sale.order, purchase.order, etc.).

To avoid creating a new mixin and manually adding it to dozens of models, I chose to inherit the core mail.activity.mixin and inject my new field there. This way, any model that is "chatter-enabled" automatically gets my workflow capabilities.

Here is the code for my mixin:

code

Python

# In my custom module: my_workflow_mixin/models/mail_activity_mixin.py


from odoo import fields, models


class MailActivityMixin(models.AbstractModel):

_name = 'mail.activity.mixin'

_inherit = 'mail.activity.mixin'

_description = 'Enhance native Activity Mixin with workflow capabilities'


kanban_state = fields.Selection([

('draft', 'Draft'),

('to_approve', 'To Approve'),

('approved', 'Approved'),

('rejected', 'Rejected')

], string='Kanban State', default='draft', tracking=True, copy=False,

help="A visual state field for use in kanban views and status bars.")

The Strange Problem

The issue arises with models that inherit this mixin, for example, sale.order.

Initial State: After installing my module (my_workflow_mixin), everything works correctly. The kanban_state field appears in the sale.order model, and in the PostgreSQL database, the sale_order table has a kanban_state column with the correct enum type and its four defined options.

Problem Occurs: After a server restart and an upgrade of another module (or sometimes after just upgrading my own module again after making a small change), I find that the selection options for kanban_state have disappeared from the sale_order table in the database. When I inspect the column type in PostgreSQL, the enum is empty. This causes errors in the UI as the values no longer match a valid selection.

Temporary Fix: If I run a full database update for all modules using the command line: ./odoo-bin -u all -d my_database, the selection options reappear correctly in the database schema for the sale_order table. The enum is repopulated.

Problem Reappears: However, if I then make a change to my my_workflow_mixin module and upgrade only this module (./odoo-bin -u my_workflow_mixin -d my_database), the problem comes back! The selection options are once again wiped from the sale_order table's enum type.

My Hypothesis and Questions

It seems like the module loading order and the scope of the update (-u my_module vs. -u all) are causing the Odoo ORM to incorrectly update the PostgreSQL enum type. When only my module is updated, the ORM seems to forget that other models like sale.order depend on this modified mixin, and it fails to propagate the schema changes correctly. The -u all command forces a re-evaluation of the entire model registry in the correct dependency order, which fixes it temporarily.

Has anyone encountered this behavior before?

Is inheriting a core Odoo mixin like mail.activity.mixin to add fields considered bad practice, and could it be the root cause of these ORM inconsistencies?

Is this a potential bug in the Odoo 17 ORM regarding how it handles schema updates for inherited models?

Any help would be greatly appreciated. Thank you!


0
Avatar
Descartar
¿Le interesa esta conversación? ¡Participe en ella!

Cree una cuenta para poder utilizar funciones exclusivas e interactuar con la comunidad.

Registrarse
Publicaciones relacionadas Respuestas Vistas Actividad
Ya es posible hacer Upgrade de v17 a v17.1 ?
v17
Avatar
Avatar
1
oct 25
1798
How to add a new Many2one field in res.config.settings? Resuelto
v17
Avatar
Avatar
Avatar
Avatar
4
oct 25
4572
Add field to ALL models in Odoo
v17
Avatar
Avatar
Avatar
2
sept 25
3017
How to disable Email notification - You have been assigned to Resuelto
v17
Avatar
Avatar
Avatar
Avatar
4
sept 25
8791
How to get the active_id from get_view function in odoo 17?
v17
Avatar
Avatar
Avatar
Avatar
Avatar
4
may 25
4979
Comunidad
  • Tutoriales
  • Documentación
  • Foro
Código abierto
  • Descargar
  • GitHub
  • Runbot
  • Traducciones
Servicios
  • Alojamiento en Odoo.sh
  • Soporte
  • Actualizaciones del software
  • Desarrollos personalizados
  • Educación
  • Encuentra un contador
  • Encuentra un partner
  • Conviértete en partner
Sobre nosotros
  • Nuestra empresa
  • Activos de marca
  • Contáctanos
  • Empleos
  • Eventos
  • Podcast
  • Blog
  • Clientes
  • Legal • Privacidad
  • Seguridad
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk slovenščina Español (América Latina) Español Svenska ภาษาไทย Türkçe українська Tiếng Việt

Odoo es un conjunto de aplicaciones de código abierto que cubren todas las necesidades de tu empresa: CRM, comercio electrónico, contabilidad, inventario, punto de venta, gestión de proyectos, etc.

La propuesta única de valor de Odoo es ser muy fácil de usar y estar totalmente integrado.

Sitio web hecho con

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now