Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Adding South to Django project, development & production

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?

like image 935
Headcrab Avatar asked Oct 27 '10 16:10

Headcrab


2 Answers

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
like image 116
ppvi Avatar answered Nov 15 '22 00:11

ppvi


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. :)

like image 4
AKX Avatar answered Nov 15 '22 00:11

AKX