code: def diff_many(models1, models2, migrator=None, reverse=False):
      
      models1 = pw.sort_models(models1)
      models2 = pw.sort_models(models2)
  
      if reverse:
          models1 = reversed(models1)
          models2 = reversed(models2)
  
      models1 = OrderedDict([(m._meta.name, m) for m in models1])
      models2 = OrderedDict([(m._meta.name, m) for m in models2])
  
      changes = []
  
      for name, model1 in models1.items():
          if name not in models2:
              continue
          changes += diff_one(model1, models2[name], migrator=migrator)
  
      # Add models
      for name in [m for m in models1 if m not in models2]:
          changes.append(create_model(models1[name], migrator=migrator))
  
      # Remove models
      for name in [m for m in models2 if m not in models1]:
          changes.append(remove_model(models2[name]))
  
      return changes
docs: Calculate changes for migrations from models2 to models1.