Enhancing Django productivity using South

A couple of days ago,  I had a problem with Django: how can I add a new field to n existing model withou using the conventional syncdb command? Assuming I have a model with the following fields:

class Blog(models.Model): user = models.ForeignKey(Users) blog_post = models.CharField()

And for some reason, I wanted to add a new field to the model:

class Blog(models.Model): user = models.ForeignKey(Users) blog_post = models.CharField() title = models.CharField()

How can we do that without deleting the whole table of data for Blog while adding a new field?

We can do that using South.

In general, we have to install South first, run syncdb, than follow the instructions found in the tutorials.

To install, read the tutorial here: http://south.aeracode.org/docs/installation.html

To learn the basics of using South, visit: http://south.aeracode.org/docs/tutorial/part1.html

what about more complex fields? We learn about this at : http://south.aeracode.org/docs/tutorial/part2.html#tutorial-part-2

In part three of the tutorials, we learn about advanced commands and data migrations: http://south.aeracode.org/docs/tutorial/part3.html

If you want to convert an existing app to use South, read about it here: http://south.aeracode.org/docs/convertinganapp.html