The Django Extensions package has a number of custom management commands for django, one of these commands is sqldiff:
https://github.com/django-extensions/django-extensions/blob/master/docs/sqldiff.rst
First,
sudo pip install django-extensions
Next, add django-extensions to installed apps
INSTALLED_APPS = (
...
'django_extensions',
...
)
Then, you can
python manage.py sqldiff -a
You'll be presented with a full list of differences, as well as a long list of ALTER TABLE statements that will ensure all fields are set properly (length, null, unsigned, etc)
Any tables that are not created will be listed, and you can then dump the SQL to create them using
python manage.py sqlall {app_label}
It's worth noting that for column name changes, sqldiff will attempt to simply drop renamed columns and create new ones in their place - So don't just copy the entire sqldiff and run it against production without inspecting.