See this answer: Migrating existing auth.User data to a new Django 1.5 custom model?
For others who may experience a similar problem, starting with the user's user model:
If you use "django.contrib.auth" and have a user user model, you cannot run syncdb if your user model is not included in installed applications. You will get this error
CommandError: one or more models were not checked: auth.user: The model was replaced for "myapp.User", which was not installed or is abstract. admin.logentry: "user" refers to the myapp.User model, which either has not been installed or is abstract.
So, to fix this, you need to include the application containing your user model in the installed applications, and now, when you run syncdb, it will add all the tables for your own models. Therefore, you must convert your application to the south, since the tables are already created.
python manage.py syncdb python manage.py migrate python manage.py convert_to_south myapp
This will create 0001_initial and you will get this error:
CommandError: one or more models were not checked: auth.user: The model was replaced for 'myapp.User', which was not installed or is abstract.
Workaround:
python manage.py syncdb python manage.py migrate python manage.py convert_to_south myapp python manage.py migrate myapp 0001 --fake
You will still get the error above when you run convert_to_south, but now you can ignore it. Southern documentation says:
convert_to_south: South will automatically make and pretend to apply your first migration
I think the problem is that checking the model causes the error_conversion to be converted before it pretends (-fake) to apply the first migration.
So the workaround is to basically do the fake migration that was skipped.