title: Django meta permissions
body: <p>I am adding custom permissions via use of 'meta' in the Django models. See below for a simple example.</p>
  
  <p>Models.py</p>
  
  <pre><code>class Meta:
      permissions = (
          ("can_do_stuff", "Can do stuff"),
      )
  </code></pre>
  
  <p>This works great, I add the above code to a model and then make my migrations and then migrate them. The permission gets created and is available for use.</p>
  
  <p>However, when i remove (or modify) that permission from the 'meta' section of my model and again <code>makemigrations</code>, <code>migrate</code> the permission (that was removed/modified) is not removed from the Django system.</p>
  
  <p>This wouldn't be a problem if i had figured out my permissions system 100% but I have been fine tuning things as I learn and as a result the permissions list gets messy with 'legacy' permissions.</p>
  
  <p>I am developing and releasing new versions to production use on a frequent basis, and the permissions are getting messy in production where i can't just wipe the DB like i could in dev.</p>
  
  <p>Is there a recommended way of doing this? </p>
  
  <p>I could delete the legacy permissions manually directly from the database (it seems to be just one entry i need to delete and it seems to not cause any problems). This seems like a bad way of doing it, subject to error, being forgotten etc.</p>