Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
2 Trả lời
13936 Lượt xem

How can I rename a field in the model code, e.g. `FooModel`, so that the changes propagate correctly to the database schema?

I would like to rename e.g. `spam` to `beans` in the `FooModel._columns`. But how can I ensure that the same column rename occurs in the database when I update the OpenERP server code?

I can just rename the field in the Python code for the model, of course. But how will Odoo know which field was renamed to what? What if I rename several fields at once? What if I rename one field, delete another, and create another? How can I signal to Odoo which new fields are renames?


Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

Hi,

For example :

old :
    spam = fields.Char(string='SPAM')

new :

     beans = fields.Char(oldname='spam',string="SPAM")

"oldname" parameter refer to the previous name of this field, so that ORM can rename it automatically at migration.

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

I rename fields all the time. All that is needed is restarting Odoo, followed by an upgrade of the module that implements the field. Odoo will take care of the schema. 

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
0
thg 12 24
1323
1
thg 3 24
2374
1
thg 6 23
12380
0
thg 1 23
3098
2
thg 9 20
4036