Add support for ignoring certain attribute changes on a field.

Review Request #11108 — Created Aug. 1, 2020 and submitted

Information

Django Evolution
master

Reviewers

There are field attributes normally relevant to a column's definition
that some fields accept that don't have any actual impact for that
particular field. An example is ManyToManyField(null=True), which has
historically been allowed but has since resulted in warnings.

Django Evolution has been happy to try to apply these changes to the
database, but that just results in bad SQL and a failed evolution.

This change adds support for defining ignorable attributes for different
field types. This currently only consists of null for
ManyToManyField, but may be useful for more fields in the future.

The signature still retains these attributes, and they're factored in
for diffs and evolution hints. They're only ignored at the SQL
generation level.

Unit tests pass for all databases.

Summary ID
Add support for ignoring certain attribute changes on a field.
There are field attributes normally relevant to a column's definition that some fields accept that don't have any actual impact for that particular field. An example is `ManyToManyField(null=True)`, which has historically been allowed but has since resulted in warnings. Django Evolution has been happy to try to apply these changes to the database, but that just results in bad SQL and a failed evolution. This change adds support for defining ignorable attributes for different field types. This currently only consists of `null` for `ManyToManyField`, but may be useful for more fields in the future. The signature still retains these attributes, and they're factored in for diffs and evolution hints. They're only ignored at the SQL generation level.
fd3e5d919c605952d2d7b6a29a8c7f29019d5a88
david
  1. Ship It!
  2. 
      
chipx86
Review request changed
Status:
Completed
Change Summary:
Pushed to master (812488a)