summaryrefslogtreecommitdiff
path: root/odoo
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2019-08-05 09:41:49 +0000
committerChristophe Simonis <chs@odoo.com>2019-08-05 11:49:07 +0000
commite8a3f1a04e38ffc8b2a3b362743503840a738ff6 (patch)
tree07e8ee33b3dd8a9868aaa8b5293932af98c168f2 /odoo
parent886eca0131716e137e60a1e398a9fc3996dfa425 (diff)
[IMP] core: remove support of `oldname` attribute
This attribute is misleading as it is insufficient to correctly upgrade the database. It only renames the column in the database, but other operations are needed, like updating the corresponding `ir.model.fields` record (and its xmlid). The default values and the translations are also lost during the upgrade. Moreover, this feature was misused. It was: - left on fields during multiple versions. - used on reports (SQL views). This would be ok if the feature was complete, but, as is, it was useless. - kept unchanged after a second renaming of the field (which can happen versions later the first rename). - used, even when the meaning of the field changed. i.e. the field `archived` has been renamed to the classic `active`, but the value in the database should be switched. closes odoo/odoo#35439 Signed-off-by: Christophe Simonis <chs@odoo.com>
Diffstat (limited to 'odoo')
-rw-r--r--odoo/fields.py13
1 files changed, 5 insertions, 8 deletions
diff --git a/odoo/fields.py b/odoo/fields.py
index 1d1b51225cb..b8c964aaa79 100644
--- a/odoo/fields.py
+++ b/odoo/fields.py
@@ -34,6 +34,7 @@ DATETIME_LENGTH = len(datetime.now().strftime(DATETIME_FORMAT))
EMPTY_DICT = frozendict()
RENAMED_ATTRS = [('select', 'index'), ('digits_compute', 'digits')]
+DEPRECATED_ATTRS = [("oldname", "use an upgrade script instead.")]
_logger = logging.getLogger(__name__)
_schema = logging.getLogger(__name__[:-7] + '.schema')
@@ -137,9 +138,6 @@ class Field(MetaField('DummyField', (object,), {})):
``one2many`` and computed fields, including property fields and
related fields)
- :param string oldname: the previous name of this field, so that ORM can rename
- it automatically at migration
-
.. _field-computed:
.. rubric:: Computed fields
@@ -452,6 +450,10 @@ class Field(MetaField('DummyField', (object,), {})):
if key1 in attrs:
_logger.warning("Field %s: parameter %r is no longer supported; use %r instead.",
self, key1, key2)
+ for key, msg in DEPRECATED_ATTRS:
+ if key in attrs:
+ _logger.warning("Field %s: parameter %r is not longer supported; %s",
+ self, key, msg)
# prefetch only stored, column, non-manual and non-deprecated fields
if not (self.store and self.column_type) or self.manual or self.deprecated:
@@ -882,11 +884,6 @@ class Field(MetaField('DummyField', (object,), {})):
return
column = columns.get(self.name)
- if not column and hasattr(self, 'oldname'):
- # column not found; check whether it exists under its old name
- column = columns.get(self.oldname)
- if column:
- sql.rename_column(model._cr, model._table, self.oldname, self.name)
# create/update the column, not null constraint, indexes
self.update_db_column(model, column)