Removing A Django Application Completely with South
Let's pretend that the application that you want remove contains the following model in myapp/models.py: class SomeModel(models.Model): data = models.TextField
Create the initial migration and apply it to the database:
./manage.py schemamigration --initial myapp ./manage.py migrate
To remove the Models edit myapp/models.py and remove all the model definitions
Create the deleting migration:
./manage.py schemamigration myapp
Edit myapp/migrations/0002autodel_somemodel.py to remove the related content types
from django.contrib.contenttypes.models import ContentType ... def forwards(self, orm): # Deleting model 'SomeModel' db.delete_table('myapp_somemodel') for content_type in ContentType.objects.filter(app_label='myapp'): content_type.delete()
Migrate the App and remove the table, then fake a zero migration to clean out the south tables
./manage.py migrate ./manage.py migrate myapp zero --fake
Remove the app from your settings.py and it should now be fully gone....