I’ve been working with django + south for a while and still haven’t nailed this issue down.
Take an existing project, with existing apps and existing migrations that have been added over time. Now suppose you want to deploy it to a new dev machine (for example) with a clean database.
What would be the process?
Remember the that settings at this point contains:
INSTALLED_APPS = (
'django.contrib.auth',
# ...
'south',
'myapp1',
'myapp2',
)
So on one hand, if you try to run the migrations, you won’t get anything since no database exists yet. But if you try to syncdb it’ll simply sync without the south migrations.
So what’s the right process to do this?
How about syncdb, and then migrate?
South’s patched syncdb management command tells you as much at the end: