Odoo is the world's easiest all-in-one management software. It includes hundreds of business apps:
CRM | e-Commerce | Accounting | Inventory | PoS | Project management | MRP | etc.
I am trying to recover data from a broken odoo installation (uprade got screwed up).
I have exported all the tables to CSV using postgresql (psql). I would also be able to handle many2one and one2many relations.
For many2many relations, I need a way to programatically find out which database table contains the relation details (ids from both the models). I tried to get the data from the ORM "fields_get" function using xmlrpc. The field definition returns a dictionary which has a key named 'relation'. However this key contains just the name of the other table/ model involved in the relation. For many2many relations there is another 3rd table involved. I am unable to find where odoo stores the name of this table.
In Odoo 9, you can query ir_model_fields to get the table name from the relation_table column.
I'm not too sure about 7 and 8, but I think in 6.1 you could check the field definition from a fields get - something like:
self.fields_get(cr, uid, ['my_m2m_field'])['my_m2m_field']['third_table']
You can get the name of the relation table by seeing the fields definition only. Or, odoo maintains a separate table called 'ir_model_relation' containing the module id(like, Project) and the object(model) id(like project_project ) with relation tables name for that object, you can use this table to get all the relation for that particular model(object) .
About This Community
This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.Register
Odoo Training Center
Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.Test it now
|Asked: 5/21/15, 2:36 AM|
|Seen: 2866 times|
|Last updated: 11/24/15, 9:47 AM|