Addon updates and data migration
The data model you choose when writing an addon might turn out to have some weaknesses, so you may need to adjust it during the life cycle of your addon. In order to allow that without a lot of hacks, Odoo supports versioning in addons and running migrations if necessary.
How to do it...
We assume that in an earlier version of our module, the date_release field was a character field, where people wrote whatever they saw fit as the date. Now we realize we need this field for comparisons and aggregations, which is why we want to change its type to Date
. Odoo does a great job at type conversions, but, in this case, we're on our own, which is why we need to provide instructions on how to transform a database with the previous version of our module installed to a database where the current version can run:
Bump the version in your
__openerp__.py
manifest:'version': '9.0.1.0.1',
Provide pre-migration code in
migrations/9.0.1.0.1/pre-migrate.py
:def migrate(cr, version...