13
votes

Adding South to an existing Django project. I have it installed on both the development machine and the "production" server.

I've done the following on the development machine, then: added South app to settings.py,

python manage.py syncdb
python manage.py convert_to_south myproject.myapp

then changed some models, then

python manage.py schemamigration myproject.myapp --auto
python manage.py migrate myproject.myapp

Seems to work so far. What I am now not so sure about is what to do on the production server. Just repeat all these steps manually? Upload modified settings.py, do syncdb, convert_to_south, upload modified models.py, do schemamigration, migrate? Something different? The tutorial here says something about adding migrations to the version control, so, presumably, they should be uploaded and somehow applied on the production server?

Furthermore, right now I am using sqlite3 on the development machine and mysql on the server - does it make things any different south-wise?

3
The bounty of South putting migrations in code that uses the ORM is that it makes them back-end agnostic, so your migrations will work on sqlite, mysql and all databases that have a back-end.Chris Wesseling

3 Answers

16
votes

My guide says:

  1. Install South on server. import south from shell just to make sure you are using the same python env.
  2. Add 'south' to INSTALLED_APPS in settings.py.
  3. Upload settings.py.
  4. Restart server
  5. python manage.py syncdb.
  6. Upload new app/models.py and app/migrations/ dir.
  7. Restart server.
  8. python manage.py migrate app --fake 0001
  9. python manage.py migrate app
4
votes

To make sure the south migration table exists,

python manage.py syncdb

and then

python manage.py migrate myproject.myapp --fake 0001
python manage.py migrate myproject.myapp

That's what's worked for me. :)

0
votes

No need to do this in Django >= 1.7
i am stuck on this more then 1 hour :)
and at last find 1.7 and more have in build upgrading-from-south

for more info https://docs.djangoproject.com/en/1.7/topics/migrations/#upgrading-from-south
may be this one help you