Add support for ignoring certain attribute changes on a field.

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

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.

Commits

Files