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....