code: def diff_one(model1, model2, **kwargs):
      
      changes = []
  
      fields1 = model1._meta.fields
      fields2 = model2._meta.fields
  
      # Add fields
      names1 = set(fields1) - set(fields2)
      if names1:
          fields = [fields1[name] for name in names1]
          changes.append(create_fields(model1, *fields, **kwargs))
  
      # Drop fields
      names2 = set(fields2) - set(fields1)
      if names2:
          changes.append(drop_fields(model1, *names2))
  
      # Change fields
      fields_ = []
      nulls_ = []
      indexes_ = []
      for name in set(fields1) - names1 - names2:
          field1, field2 = fields1[name], fields2[name]
          diff = compare_fields(field1, field2)
          null = diff.pop('null', None)
          index = diff.pop('index', None)
  
          if diff:
              fields_.append(field1)
  
          if null is not None:
              nulls_.append((name, null))
  
          if index is not None:
              indexes_.append((name, index[0], index[1]))
  
      if fields_:
          changes.append(change_fields(model1, *fields_, **kwargs))
  
      for name, null in nulls_:
          changes.append(change_not_null(model1, name, null))
  
      for name, index, unique in indexes_:
          if index is True or unique is True:
              if fields2[name].unique or fields2[name].index:
                  changes.append(drop_index(model1, name))
              changes.append(add_index(model1, name, unique))
          else:
              changes.append(drop_index(model1, name))
  
      return changes
docs: Find difference between given peewee models.