South概述
针对django自带的syncdb同步models和数据库的缺陷开发的数据迁移工具。
South可以作为syncdb的替代,South能够检测对models的更改并同步到数据库。
新建的项目使用South:
1. 安装完South之后,要在django项目中使用South,先要将South作为一个App导入项目,所以在Django项目的settings.py中的INSTALL_APP下添加south。
2. Django中本身的app,还是可以通过Django自带的命令来同步到数据库中(包括South app的south_migrationhistory表也是此时创建)
python manage.py syncdb
3. 对于Django项目中自己创建的app,需要通过以下命令来
python manage.py schemamigration yourappname --initial # 会在youappname目录下面创建一个migrations的子目录,
# 含有migrations包
#以后每次对models更改后,可以运行以下两条命令同步到数据库
python manage.py schemamigration yourappname --auto # 检测对models的更改
python manage.py migrate yourappnam # 将更改反应到数据库
已有的项目中使用South:1. 对于一个已存在的项目(定义了models,创建了相应的数据库,保存了响应的数据),这时想要使用South替代原来的syncdb只需要一些简单的步骤
2. 同样需要现在INSTALL_APP里面添加south,然后:
python manage.py syncdb # syncdb已经被South更改,用来创建south_migrationhistory表
python manage.py convert_to_south yourappname # 在yourappname目录下面创建migrations目录以及第一次迁移需要的migration包