It’s accidental to delete a table when performing some actions or on purpose to get rid of cluster. Django has a good in-build engine that can manage the changes in models and your database synced but if you happen to drop a migrated table you will end up with Django : Table doesn't exist. Here’s how you can fix it.

  • Drop tables ( you most probably completed :p )
  • Comment-out the model in and other locations where the model is induced, else System-checks will fail
  • if django version >= 1.7 for older see below
    python makemigrations
    python migrate --fake

  • comment-in your model in
  • Run makemigrations and migrate again without using --fake
  • You are back on track.

    Note: This does not bring back the data lost when you dropped the table, it recreates the database table and allows further use of application

    If you have django version less than 1.7 use schemamigration to get the magic:

    python schemamigration  --auto
    python migrate someapp --fake