Search code examples
pythondjangodjango-southdjango-syncdb

Django - how to run syncdb after 'south' is an installed app?


I added south in my installed apps so that I can do schemamigrations. I then added

django.contrib.admin

and

django.contrib.flatpages

to the installed apps. Now, normally I would just do

python manage.py syncdb

but is that the correct way to do it after installing south? Here (http://south.readthedocs.org/en/latest/commands.html#syncdb) it says

'South overrides the Django syncdb command; as well as changing the output to show apps delineated by their migration status, it also makes syncdb only work on a subset of the apps - those without migrations.'

but I don't fully understand it. If it overrides the Django syncdb command, then what would be the best way for me to sync

django.contrib.admin

and

django.contrib.flatpages

?


Solution

  • You have to explicitly convert any of your INSTALLED_APPS to use South.

    After installing South you can still do python manage.py syncdb to sync any apps that aren't using South (such as Flatpages)

    To convert an app:
    http://south.readthedocs.org/en/latest/convertinganapp.html