• 
      

    Add configuration for renamed field module paths.

    Review Request #13698 — Created April 4, 2024 and submitted

    Information

    Django Evolution
    release-2.x

    Reviewers

    In some cases, field classes may be renamed or moved to different
    modules. django-evolution had some one-off logic to handle this for when
    django itself moved all the fields from django.db.models.fields to
    django.db.models, but there was nothing available to consumers of the
    library to do the same.

    We recently ran into a problem where we decided to remove a dependency
    on a third-party field, replacing it with a compatible home-grown
    implementation. This worked fine, except django-evolution would fail to
    load the signature because the old module didn't exist. This change adds
    a new mapping to the django-evolution configuration,
    RENAMED_FIELD_TYPES, which allows a project to define their own
    renames.

    • Used this in conjunction with code that set
      DJANGO_EVOLUTION['RENAMED_FIELD_TYPES'] to a mapping from our old
      third-party library to our new implementation, and saw that
      django-evolution management commands and Evolver calls worked
      correctly.
    • Ran unit tests.
    Summary ID
    Add configuration for renamed field module paths.
    In some cases, field classes may be renamed or moved to different modules. django-evolution had some one-off logic to handle this for when django itself moved all the fields from `django.db.models.fields` to `django.db.models`, but there was nothing available to consumers of the library to do the same. We recently ran into a problem where we decided to remove a dependency on a third-party field, replacing it with a compatible home-grown implementation. This worked fine, except django-evolution would fail to load the signature because the old module didn't exist. This change adds a new mapping to the django-evolution configuration, `RENAMED_FIELD_TYPES`, which allows a project to define their own renames. Testing Done: - Used this in conjunction with code that set `DJANGO_EVOLUTION['RENAMED_FIELD_TYPES']` to a mapping from our old third-party library to our new implementation, and saw that django-evolution management commands and `Evolver` calls worked correctly. - Ran unit tests.
    c98f7b06e3193b1c95b74a0215d30a0ce2af04c6
    Description From Last Updated

    This needs a Version Added.

    chipx86chipx86
    chipx86
    1. 
        
    2. django_evolution/conf.py (Diff revision 1)
       
       
       
       
       
      Show all issues

      This needs a Version Added.

    3. 
        
    david
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to release-2.x (fc2b9a5)