1、建立一个项目 python django-admin.py startproject mysite
2、cd mysite python manage.py startapp myapp 建立一个应用
3、下载south ,加压后把south文件夹放到mysite目录下面,把south,myapp包含到mysite下面的settings.py INSTALLED_APPS里面
4、python manage.py syncdb 把south所需数据库表同步的数据库
4、在myapp/models.py 里面加入模型
from django.db import models
class Person(models.Model):first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
5、第一次生产south初始化文件(和原始的syncdb命令的功能一样)
python manage.py schemamigration myapp --initial (将会在mysite/myapp/migrations下面生产一份创建myapp_person表的合并文件,只是创建)
6、执行south同步数据库的命令(执行5生成的文件)
python manage.py migrate myapp (将会在数据库中创建myapp_person的表)
7、模拟模型更改字段
更改mysite/models.py下面代码
class Person(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
test_add_field = models.CharField(max_length=30,null=True,blank=True)
8、生成更改文件
python manage.py schemamigration myapp --auto
9、执行south同步数据库的命令(执行8生成的文件)
python manage.py migrate myapp (将会在数据库myapp_person表中增加test_add_field字段)
10、注意
south生成的变更文件执行成功后,以后就不会在执行了。
django中的字段,如果没有设置blank=True 和null=True的字段,south会提示输入默认值(这个属于你设计模型时的失误)
11、已经存在的项目(之前没有加入south功能该如何做)
确保当前模型中的字段和数据库中的字段一样
执行如下命令:
python manage.py convert_to_south myapp(将会生成mysite/myapp/migrations下面生成第一份数据文件)
12、之后如果模型有更改就可以执行5,6,7,8,9等操作更改数据库字段或者创建表,删除表等等。