• 
      

    Add support for Django 1.5's index_together property.

    Review Request #5121 — Created Dec. 16, 2013 and submitted

    Information

    Django Evolution
    master

    Reviewers

    Add support for Django 1.5's index_together property.

    Django 1.5 introduced index_together for creating an index that spans
    columns without being unique. This provides support for that new
    property through ChangeMeta.

    Unlike with unique_together, we don't have old signature state to worry
    about, so we can safely compare values and assume they're correct
    (though the actual code to perform the index_together will still
    sanity-check the database before generating error-prone SQL).

    Unit tests pass.

    Tested that it doesn't cause any issues with our existing evolutions.

    Description From Last Updated

    This indentation is very, very weird. How about: self.changed\ .setdefault(app_name, {})\ .setdefault('changed', {})\ .setdefault(model_name, {})\ .setdefault('meta_changed', [])\ .append('index_together')

    david david
    chipx86
    david
    1. 
        
    2. django_evolution/diff.py (Diff revision 1)
       
       
       
       
       
       
      Show all issues

      This indentation is very, very weird.

      How about:

      self.changed\
          .setdefault(app_name, {})\
          .setdefault('changed', {})\
          .setdefault(model_name, {})\
          .setdefault('meta_changed', [])\
          .append('index_together')
      
      1. Not wild about the backslashes. I think it actually looks less readable.

        That said, I hate the current form too. It's used in a lot of places in this codebase. I planned to fix it in a separate change in one swoop. Basically, going to add a function that takes each part of that path as *args and loop through, doing the setdefault. Given that, going to drop this for now, and I'll put a new change up shortly.

    3. 
        
    david
    1. Ship It!
    2. 
        
    chipx86
    Review request changed
    Status:
    Completed