Make database fields from fields that live in serialized fields

unserialize_field
REPOSITORY
REPOSITORYOCA/server-tools
GIT
GIThttps://github.com/OCA/server-tools.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-tools/tree/6.1/unserialize_field
VERSION
VERSION 1.0
CATEGORY
CATEGORYTools
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Therp BV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Therp BV
COMMITTERS
COMMITTERSAlexandre Fayolle, Stefan Rijnhart, Holger Brunn
WEBSITE
WEBSITEhttp://www.therp.nl
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:04:06
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Sparse, or serialized fields do not live as a column in the database table.
Instead, their values are stored in JSON arrays in a separate field. As a
result, these fields cannot be searched or sorted by.

If such a sparse field is created as 'manual', this module can unserialize
the field. Its field definition and values will then be migrated to a
proper database column. A real life use case where you encounter many
of such fields is the Magento-OpenERP connector.

For technical reasons, many2many and one2many fields are not supported.

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
view_model_fields_form ir.model.fields data Inherits base.view_model_fields_form
view_model_form ir.model data Inherits base.view_model_form
Models touched (1)

New fields (0)

No new fields.

Public methods (3)
  • action_unserialize_field(self, cr, uid, ids, context=None)
  • create_database_column(self, cr, uid, pool_obj, field_name, context=None)
  • unserialize_field(self, cr, uid, pool_obj, read_record, serialization_field_name, field_name, context=None)